私の問題の解決策を探しています。クライアント向けの製品にWebブラウザーコントロールを組み込んでいます。クライアントは、Webサイトにファイルアップロードボックスがあることを検出できる必要があります。次に、Windows 7ファイルブラウザーウィンドウを起動する代わりに、独自のウィンドウを開く必要があります。カスタムデザインのもの
それをキャプチャできるブラウザイベントはありますか?
私の問題の解決策を探しています。クライアント向けの製品にWebブラウザーコントロールを組み込んでいます。クライアントは、Webサイトにファイルアップロードボックスがあることを検出できる必要があります。次に、Windows 7ファイルブラウザーウィンドウを起動する代わりに、独自のウィンドウを開く必要があります。カスタムデザインのもの
それをキャプチャできるブラウザイベントはありますか?
コントロール サイトに IServiceProvider を実装し、Web ブラウザー コントロールから要求されたときに IDownloadManager オブジェクトを返すように QueryService を実装することで、Web ブラウザー コントロール ホスト プロセスでのみ有効な独自のダウンロード マネージャーを接続できます。
Windows フォームの Webbrowser クラスでは、既定でコントロール サイトが作成されますが、独自のWebBrowserSiteBaseクラスを作成し、WebBrowser.CreateWebBrowserSiteBase メソッドをオーバーライドすることで、コントロール サイトをオーバーライドできます。WPF、Silverlight、または Windows Phone から webbrowser コントロールを使用する場合、そのような拡張性はありません。
C# でコーディングすると相互運用性が必要になるため、C++ でダウンロード マネージャーを作成することをお勧めします。ネイティブ ダウンロード マネージャーを使用した C# Web ブラウザー コントロールの例がここにあります。
したがって、値を変更したい場合は<input type=file ....
、webbrowser コントロールではそれを行うことができません。これは、javascript、vbscript のような DOM にアクセスするためです。また、DOM がアップロードされたファイルへのアクセスと変更を許可している場合、アクセス時に悪者が (javascript を使用して) ローカル ファイルを簡単に盗む可能性があります。彼らのページ。
さらに、そのセキュリティ上の問題により、FileUpload の値を確認することさえできません。
の組み合わせで可能なファイルをプログラムで選択したい場合SendKeys
FileDownload
イベントをキャッチして、自分で処理できます。
http://msdn.microsoft.com/en-us/library/bb268220(v=vs.85).aspxを参照してください。
カスタム ファイル ダイアログを表示した後、データを webbrowser コントロールに送り返し、フォームを送信します。
もう 1 つのオプションは、JavaScript をコントロールに挿入することです。アップロード ボタンからの呼び出しを置き換えるコードを挿入し、代わりに独自のフォームを表示します。