2017-03-17 25 views
1

VB.NETでは、Webからファイルをダウンロードする必要がありますが、保存ダイアログボックスは表示されません。私は.net Webブラウザコントロールを使用しています。保存ダイアログなしでファイルをダウンロード

ここでは、ダウンロードしなければならないファイルのURLがわかりません。それはウェブサイトによって渡されている。

たとえば、次のURLをブラウザ「http://www.ncdex.com/MarketDataAction_bhavCopySubmit.action」に渡すと、Webブラウザのファイルダウンロードイベントが発生し、保存ファイルダイアログボックスが表示されます。この後、私は手動で保存をクリックし、特定のパスにファイルを保存する必要があります。

このプロセスを自動化すると、ファイルが自動的に必要なパスに保存されます。

これはできますか?それ以外の場合は、簡単ではないダイアログボックスを管理するためにsendkeysを使用する必要があります。

答えて

3

あなたは、あなたがこれを容易にするWebClientクラスを活用することができ、この特定の機能のために、WebBrowserコントロールとは別のクラスを使用するのではなくていない場合:

Dim strURL As String = "http://www.ncdex.com/MarketDataAction_bhavCopySubmit.action" 

    Dim strFileLocation As String = "C:\SomeLocation\SomeFileName.SomeExtension" 

    Dim objWebClient As New System.Net.WebClient() 

    System.IO.File.WriteAllBytes(strFileLocation, objWebClient.DownloadData(strURL)) 
+0

ありがとうございました。一度開始されたjavascript関数がダイアログボックスを保存することにつながるURLのためにそれを行うことは可能ですか? – Greatchap

+0

WebClientクラスはJavascriptを実行しません。私が正しくあなたに従っているならば、WebBrowserコントロールはページにナビゲートしてから、いくつかのJSがダウンロードをトリガするために実行されます。 WebBrowserでその機能を抑制できるかどうかは確かではありませんが、WebBrowserの代わりにWebClientを使用してダウンロードするファイルのURLを解析する方がよい場合もあります。 – N0Alias

+0

URLが渡されてダウンロード用のファイルが生成された場合、webclassコードが正常に動作します。しかし、私のシナリオでは、ページを開くとJavaScriptのイベントがファイル保存ダイアログにつながります。それはウェブブラウザでは正常に動作しますが、保存プロセスは手動で行う必要があります。別のシナリオでは、日付を入力する必要があります。ボタンをクリックすると、ファイルのダウンロードが開始されます。これは手動の介入なしに実行できます。 – Greatchap

関連する問題