Grundsätzlich ist es mit AutoIt leicht, ein Programm mit ausgeblendeten bzw. verstecktem Fenster zu starten.
Die einfachste Syntax wäre:
run("Irgendeine.exe", "", @SW_HIDE)
Das funktioniert super, sofern das Programm nur ein Fenster öffnet. Starten allerdings mehrere Fenster z.B. der Reihe nach, so bleibt das Erste zwar versteckt, die nachfolgenden werden allerdings angezeigt.
Das kann man zwar z.B. über
WinSetState("Fenstertitel", "", @SW_HIDE)
weiter eingrenzen, allerdings geschieht diese Änderung mit kurzer Verzögerung. Das bedeutet, das Fenster “blitzt” kurz auf. Kennt man zudem nicht alle nachfolgenden Fenstertitel, wird das Unterbinden der Anzeige unter Umständen unmöglich.
Problematisch kann zudem sein, wenn man ein Fenster über “WinSetState” direkt bzw. kurz nach dem Start einer Anwendung versteckt, das der gesamte Programmstart dann nicht gelingt.
Abhilfe kann schaffen, das Programm auf einem versteckten Desktop zu starten. Diese Lösung fand sich im Forum:
_shellExecuteHidden (allow no windows to become visible)
Als simples AutoIt-Programm habe ich einfach die Funktion zusammen mit den nachfolgenden Zeilen in ein Skript gepackt und als ausführbare Datei kompiliert:
#NoTrayIcon $CMD = $CmdLine[1] _shellExecuteHidden($CMD) ; Ab hier kommt die Funktion ...
Hinweis: Ein Download von winapiex ist nicht notwendig, da dieses als UDF in AutoIt mittlerweile enthalten ist.
Die Syntax lautet z.B.:
RunCompletelyHidden.exe C:\Windows\System32\Notepad.exe
Download
Im Archiv ist der Quellcode als auch eine 32- und 64-bit Exe-Datei enthalten:
Einschränkungen
Leider ist es mir bislang nicht gelungen, z.B. Text oder überhaupt das Vorhandensein ein auf diese Art ausgeblendeten Fensters/Programms zu ermitteln. Da muss ich dann leider dazusagen, das ich kein Entwickler bin. Falls jemand eine Idee hat, dann raus damit!
Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.
0 Kommentare
1 Pingback