YAS's VB.NET Tips
 
VB.NET Tips
VB.NET Tips >> 記事詳細

2018/02/18

IEの「アップロードするファイルの選択」を自動化

| by:YAS
NetCommonsの日誌に自動投稿するアプリを作成したい。
しかしファイルのアップロードが障壁となっている。IEの「アップロードするファイルの選択」ダイアログを開かずにファイルを指定することはできない。そこで,ダイアログの入力を自動化してみる。
ダイアログはモーダルで表示されるようで,ダイアログ表示と同時に停止するので,別スレッドで入力をシミュレートする。
SendKeysではタイミングによって失敗する。Sleep()でかなり待たないと不安定になる。
そこで,ダイアログのEditBoxのウィンドウハンドルを取得し,SendMessageのSETTEXTで文字列を送ることにする。
ただ,ウィンドウハンドルが取得できても,タイミングによってはSETTEXTできないことがある。IsWindowEnabled関数がTrueを返してもやはりタイミングによっては失敗する。IsWindowVisible関数がTrueを返すまで待てば必ず成功するようだ。

下のコードを,フォームのコードにコピー・貼り付けをすれば動作する。

17:07 | コメント(0) | InternetExplorer
メニュー