2011-08-05 6 views
0

私のアプリケーションは、WebBrowserコントロールを使用して、フォームの埋め込みとアップロードファイルを自動化する必要があります。 私はinvokeMember(「クリック」)すると、通常の「アップロードするファイルを選択」フォームがポップアップし、同時に使用している他のアプリケーションの前に表示されます。このウィンドウを横取りして、フォームの記入とファイルのアップロードをバックグラウンドで行うことができるようにする方法はありますか?WebBrowserコントロールの「アップロードするファイルを選択」ウィンドウを開く前に傍受する方法?

+0

それはほぼ確実javascriptのウィンドウです:あなたがそうするのに役立ちます偉大なチュートリアルがあります。 NewWindowイベントを発生させない種類。そう、いいえ。 –

+0

同様の質問[回答](http://stackoverflow.com/a/18691219/1768303)。 – Noseratio

答えて

2

答えはあなたがおそらくできることですが、それは不合理に複雑なプロセスになる可能性があります。ウィンドウにCALLWNDPROCRET通知チェーンを張ることができます。これは、Webブラウザコントロールによって処理される前に、イベント(ダイアログ作成など)を取得できるようにすることができます。私はこれまで '信頼できない証明書'警告ダイアログを表示しないようにするためにこれを使用してきましたが、他の選択肢がない限り、このルートを進めることはお勧めしません。

0

IEはセキュリティ上の理由から、プログラムでアップロードするファイルを設定することはできません。 (実際には、SendKeysを使用することもできません(Microsoftはその穴を閉鎖しています)。

しかし、は、ファイルをHTTPヘッダーに簡単に追加することで達成できます。

http://www.codeproject.com/KB/aspnet/set-webbrowser-file-input.aspx

関連する問題