川の流れのようなチラシの裏
にちゃんねるのこと、パソコンのこと、プログラミングのこと、(・∀・)mmo!のこと、、、、などなど。 日記みたいに書くこともあるし、思ったことをいきなり書くこともある。
201707<<12345678910111213141516171819202122232425262728293031>>201709
スポンサー広告スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--/--/--(--) --:--:--| スポンサー広告| トラックバック(-) コメント(-)
プログラミング(.NET(C#))IEのダウンロードダイアログを使う

iedownload.png
(画像はWindowsXP SP2 + IE6)

このダイアログはIEではおなじみのものですが、これをIE以外のプログラムから使うAPIが用意されています。

shdocvw.dll
BOOL DoFileDownload(LPCWSTR lpszFile)
BOOL DoFileDownloadEx(LPCWSTR lpszFile, BOOL DownloadDirect)

lpszFile:ダウンロードするファイルのURI。
DownloadDirect:trueなら、すぐファイル保存ダイアログを表示。falseなら、まず保存するか開くかの確認ダイアログを表示。

lpszFileは、LPCWSTR型なので、常にUnicodeですので、C#でこのAPIを使用するコードは次のようになります。

[DllImport("shdocvw.dll", CharSet=CharSet.Unicode)]
static extern bool DoFileDownload(string lpszFile);
[DllImport("shdocvw.dll", CharSet=CharSet.Unicode)]
static extern bool DoFileDownloadEx(string lpszFile, bool DownloadDirect);

この2つのAPIは、ダイアログをモードレスで表示します。つまり、ダイアログを表示するとすぐに次の文に進みます。

スポンサーサイト
コメント
この記事へのコメント
管理人のみ閲覧できます
このコメントは管理人のみ閲覧できます
2011/11/23(水) 13:20:48 | | #[ 編集]
コメントを投稿する
管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
copyright © 2004 Powered By FC2 allrights reserved
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。