Hallo,
...die Execute-Methode des Windows Scripting Host ...
weil sie es ermöglicht, einen Prozess asynchron auszuführen und auf sein Ende zu reagieren - und es die erste war, die mir eine Suche präsentierte.
Der Sinn des ScrollLock-Blinkens ist - wie schon Eingangs erwähnt - (Zitat: "Während Download ... im "Hide-Modus ..."), dass eine optische Kontrolle vorhanden ist, während das Programm ohne Ausgabe auf dem Monitor läuft - da scheidet die Execute-Methode wohl aus.
Die Run-Methode des WScript.Shell-Objektes erlaubt Dir ebenfalls, einen Prozess asynchron auszuführen, ich hab' allerdings auf die Schnelle keine Möglichkeit gesehen, wie man auf das Ende des Prozesses reagieren kann. Du verhinderst die asynchrone Ausführung explizit mit Deinem dritten Parameter, dem Du den Wert true zuweist.
Ich weiss, den Wert true muss ich jedoch zwangsweise zuweisen, da ich bei false sonst keinen Rückgabewert bekomme, den ich jedoch zum Abbrechen der FlashLight-Schleife benötigen würde.
' TODO: Zähler einbauen, um am Ende Scroll-Lock wieder auszuschalten,
' wenn die Anzahl der Aufrufe von Flashlight() ungerade war.
...danke, ist in der ausfühlichen Flashlight() Funktion natürlich berücksichtigt.
Nachteil dieses ersten Schrittes ist, dass Dir bei Exec() keine Parameter zur Fenstersteuerung zur Verfügung stehen. Das kriegst Du aber sicher selbst hin.
Genau das macht die Execute-Methode für mein Vorhaben unbrauchbar.
Mein jetziger Lösungsansatz:
Starte vor dem Ausführen des Downloads mit der Run-Methode im Hide-Modus asynchron (3. Parameter false) FlashLight.vbs .
Das Script FlashLight.vbs überprüft die Download-Logdatei von WGet auf Vorhandensein, startet das Blinken, überprüft im Sekundentakt ob die Zeichenfolge "FINISHED" gefunden wird und beendet dann die Schleife.
Mit Freundlichem Gruß und
großem Dank für die Lösungsvorschläge
JPS