Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Dateidownload erkennen (https://www.delphipraxis.net/207117-dateidownload-erkennen.html)

Delbor 25. Feb 2021 14:11

Delphi-Version: 10.4 Sydney

Dateidownload erkennen
 
Hi zusammen

Gibt es eine Möglichkeit, einen Dateidownload aus einer fremden Webseite heraus zu erkennen? Der Download kann dabei nicht vom eigenen Programm ausgelöst werden, und es muss aus Sicherheitsgründen zwangsweise der Browser verwendet werden, der von dem fremden Programm bereitgestellt wird.
Der Vorgang: Ich starte mein E-Banking (das fremde Programm) per Clientsoftware der Bank. Per Webseite hab ich nun Zugriff auf mein Konto und kann per Dateidownload zB. den letzten Saldo auf meinen Rechner laden, wobei ich immer angeben muss, wo die Datei unter welchem Namen gespeichert werden soll.

Grundsätzlich nimmt ja Windows die Datei entgegen und speichert sie dahin, wohin ich vorgängig angegeben habe. Also müsste es möglich sein, den Speicherort einer gedownloadeten Datei zu erfahren. Wie kriege ich diese Message?

Gruss
Delbor

jaenicke 25. Feb 2021 14:40

AW: Dateidownload erkennen
 
Es gibt Notifications bei Änderungen an Dateien usw.:
https://docs.microsoft.com/en-us/win...-notifications
Das wäre der Standardweg, wenn du weißt wie du die Datei erkennst und wo du darauf warten muss.

In der JVCL gibt es dafür glaube ich auch schon etwas Fertiges, im Netz ebenso.

Ansonsten bliebe noch sich per Hook in CreateFile und ähnliche API-Funktionen einzuklinken. Das ginge dann gezielt im Zielprogramm, allerdings wird diese im Browser natürlich öfter aufgerufen, so dass auch da das Filtern nicht so einfach wäre.

Delbor 25. Feb 2021 14:51

AW: Dateidownload erkennen
 
Hi jaenicke

Danke für die rasche Antwort!

Gruss
Delbor

himitsu 25. Feb 2021 14:55

AW: Dateidownload erkennen
 
Oder ein Filtertreiber (wie ihn z.B. der ProcessMonitor von SysInternals nutzt) ... ist vielleicht nur etwas übertrieben.


TWebBrowser im eigenen Programm und dort die Events?

Delbor 25. Feb 2021 15:51

AW: Dateidownload erkennen
 
Hi Himitsu

Leider ist das nicht möglich - das Fenster, das sich öffnet, wenn ich die Bankapp starte, zeigt keine URL und ist somit per Code nicht aufrufbar.
Hingegen - wenn Windows etwas tut, wird eine Message versendet, und soviel ich bisher gefunden habe, wird eine solche in diesem Falle an alle interessierten Anwendungen versendet, also auch an meine, sofern sie läuft. Das müsste mit TApplicationEvents zu lösen sein - die Frage ist dann eigentlich nur, wie das Ding heisst. WM_FileLoad scheint mir zu einfach...

Aber manchmal beantwortet sich eine gestellte Frage gleich selbst. (Etwa Seitenmitte).

Gruss
Delbor

himitsu 25. Feb 2021 16:09

AW: Dateidownload erkennen
 
"an ALLE", das würde dann ein Broadcast sein.
Da wird in der Message wohl kein HWND stehen (0).
Womit du da erstmal vieles Wegfiltern und einfacher suchen können dürftest. :gruebel:


[EDIT]
Zitat:

Delphi-Quellcode:
const WM_FileLoad = WM_User+20;

Ich dachte Message von einem anderen Programm an dich/alle?

OK, so lange es nur Programmintern ist, dann geht sowas.
Für Globales sollte man Delphi-Referenz durchsuchenRegisterWindowMessage verwenden.

Der Name ist egal (außer bei RegisterWindowMessage) ... auf die Nummer kommt's drauf an.

TurboMagic 25. Feb 2021 18:25

AW: Dateidownload erkennen
 
Zitat:

Zitat von jaenicke (Beitrag 1483812)
In der JVCL gibt es dafür glaube ich auch schon etwas Fertiges, im Netz ebenso.

Jupp, ich hatte da Mal die FileListbox um sowas erweitert.
Ist also in JVCL drin.

Delbor 26. Feb 2021 08:04

AW: Dateidownload erkennen
 
Hi zusammen
Zitat:

Jupp, ich hatte da Mal die FileListbox um sowas erweitert.
Ich hab mir das Ding mal auf einem Testprogramm platziert. Da ich keine Help zuden Jedis installiert habe, hab ich das im Netz gesucht,aber nichts gefunden. Oder suche ich falsch? Ich habe nach einer .pas gesucht mit irgendwas im Namen, das nach Listen und/oder Files benannt ist.

Gruss
Delbor

PS: "Drüber mal schlafen" ist oft nicht das schlechteste...
Aber mal sehen, ob ich da noch weiter fündig werde. Übrigens: meine Jedi-Version: 3.50.

TurboMagic 26. Feb 2021 21:00

AW: Dateidownload erkennen
 
Da gibt's eine FileListbox und die hat eine Properly zum automatischen Aktualisieren.

Delbor 26. Feb 2021 22:32

AW: Dateidownload erkennen
 
Hi TurboMagic

Ich hab bisher nach einer "JvFileListbox.pas" gesucht, weil mich der verwendete Code interessiert, hab sowas bisher allerdings nicht gefunden.
Unter "Delphi Sydney Erweiterungen\Sydney-Jedis\JVCL3-2020-08-28\examples\JvFileListBox" hab ich schliesslich eine Demo mit der FileListBox gefunden, und dabei ist mir - nachdem ich deinen Beitrag gesehen habe - das Property Autoupdate aufgefallen. Danke für den Tip!

Gruss
Delbor


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz