Guten Morgen,
ich möchte gerne den Parameter "BM_Click" für das Speichern von einer Exceldatei mit dem Dialogfeld "Dateidownload" des Internetexplorers nutzen. Dieses Speichern soll in regelmäßigen Abständen vollautomatisch erfolgen.
Ablauf in Kurzform:
- Aufruf der
URL, über die die Exceldatei importiert wird,
- starten einer
DLL, die den Schalter "Speichern" anklickt, denn das Dialogfeld "Dateidownload" ist Modal und
- speichern der Datei mit Hilfe des darauffolgenden Dialgfeldes "Speichern unter".
Die
DLL ermitteilt mit Hilfe der Funktionen "FindWindow" und "FindWindowEx" die HWND des Schalters. Setzt das Dialogfeld mit "SetForegroundWindow" in den Vordergrund und klickt mit dem Befehl "SendMessage(hSchalter, BM_CLICK, 0, 0);" den Schalter an. Bei einem aktiven Bildschirm funktioniert alles Fehlerfrei. Bei einem deaktivierten Bildschirm (Bildschirmschoner oder gesperrt) wird der Befehl "SetForegroundWindow" nicht angenommen und das Programm steht still. Andere Befehle wie "...WM_Settext...", "...WM_KEYDOWN..." oder das Aktivieren anderer Schalter wie z.B. "Öffnen" werden ohne Probleme ausgeführt. Auf "SendMessage(hSchalter, WM_KEYDORN, VK_RETURN, 0);" erfolgt immer ein Abbruch. Egal, welcher Schalter aktiv ist. Der Befehl "...KEYDOWN, ORD('S'),...) wird ignoriert.
Ich arbeite mit dem BS Win7 und Delhpi 2005. Das Problem liegt sowohl bei "SendMessage..." als auch bei "PostMessage..." vor.
Hat Jemand eine Idee, wie "BM_CLICK" bei deaktivierten Bildschirm funktionieren könnte?
Vielen Dank für Eure Hilfe und Antwort.