Laden...

WebBrowser-Control: Download File, wenn der Dateiname nicht bekannt ist

Erstellt von gentleben vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.672 Views
G
gentleben Themenstarter:in
13 Beiträge seit 2011
vor 10 Jahren
WebBrowser-Control: Download File, wenn der Dateiname nicht bekannt ist

Hi ich habe vor mit einem BrowserFormelement sei es das ActiveX oder das aus der Standart Bibliothek eine Datei herunterzuladen..

Ich habe hier im Forum ein paar nützliche Tipps gefunden allerdings helfen die nur wenn der Dateiname in der URL stehen was bei mir nicht der Fall ist.

Ich schicke über die Methode Sendkeys.Send() eine Tastenkombination an den Browser und dann startet der Download. Mit dieser Datei habe ich dann im Anschluss noch einiges vor und muss sie deshalb abfangen.

Das wie ist eigentlich egal ich muss nur entweder Dateipfad und Fertigstellung wissen oder direkt den Download kontrollieren können.

Wie kann ich das bewerkstelligen?

Hat jemand Ideen? Habe beide Steuerelemente getestet und die passenden Events liefern keine Lösung für mein Problem.

Wäre super wenn ihr mir da weiter helfen würdet

5.658 Beiträge seit 2006
vor 10 Jahren

Hi gentleben,

deine Beschreibung ist schwer nachvollziehbar, aber wenn ich es richtig verstanden hab, ist die Datei hinterher im Download-Ordner des Systems, so wie es in den Einstellungen des IE hinterlegt ist.

Besser als einen Browser-Control und Sendkeys dafür zu mißbrauchen wäre der Einsatz der WebClient-Klasse, um die Datei herunterzuladen. Dann ist es dir überlassen, wo und unter welchen Namen du die Datei speicherst.

Christian

Weeks of programming can save you hours of planning

M
402 Beiträge seit 2005
vor 10 Jahren

Hi...

alternativ kannst du auch die httpwebrequest-Klasse verwenden. HttpWebRequest-Klasse
lg

G
gentleben Themenstarter:in
13 Beiträge seit 2011
vor 10 Jahren

Hi ich werds nochmal anders beschreiben und sagen wofür das ganze gut ist. Es gibt einen Online Compiler der mir mein Programm als .bin Datei kompiliert und herunterlädt. Das ganze funktioniert wie in einer üblichen IDE mit einer Tastenkombination daher die Sendkeys.Send() Methode..

Ich komme da leider an keine URL oder der gleichen. Sonst wären die von euch vorgeschlagenen Vorgehensweisen sehr hilfreich trotzdem danke dafür.

Die Datei kann ganz normal heruntergeladen werden aber dann weiß ich immernoch nichts über den Dateinamen oder den Pfad und kann nicht weiter verfahren.

Im Anschluss soll die .bin Datei in eine .hex Datei umgewandelt werdne und dann auf mein Zielsystem programmiert werden.

Ich versuche diese einzelnen Schritte zu automatisieren.

Daher wäre es echt gut wenn ich den Teil wo das Downloadfenster aufgeht abfangen könnte 😃 der Rest meines Programms ist recht simpel dafür muss ich nur verschiedene exen mit den entsprechenden Parametern ausführen.

G
141 Beiträge seit 2011
vor 10 Jahren

Wenn es per Tastenkombination heruntergeladen wird, wird er deine Datei ja wohl in einem Ordner speichern, der irgendwo hinterlegt ist. Der wird ja nicht wahllos einen Ordner auswählen.

Diesen kannst du bestimmt irgendwo auslesen und überwachst diesen mit FileSystemWatcher.

Bei Chrome ist es so, dass die Datei nach dem Download erst richtig erstellt ist und vorher nur als .crdownload gespeichert wird. Darauf kannst du triggern und dann bekommst du daran den Pfad, Dateiname etc.

Bei dem IE weiß ich das nicht, ob die Datei schon richtig existiert und dann nur immer größer wird, was die Sache schwieriger macht, denn du musst ja wissen, wann der Download fertig ist.