- Offizieller Beitrag
Wie es scheint, lässt es Windows nicht bei allen Programmen zu, diese auch versteckt zu starten.
Hier im Bsp. teste ich das mit MSPaint (kann versteckt gestartet werden) und mit dem Taschenrechner (da geht es nicht).
AutoIt
Local $aApp[2][2] = [['mspaint.exe','MSPaintApp'],['calc.exe','CalcFrame']]
Local $iPID, $hWnd
For $i = 0 To 1
$iPID = Run(StringFormat('%s\%s', @SystemDir, $aApp[$i][0]), '', @SW_HIDE)
If Not $iPID Then ContinueLoop
ConsoleWrite(StringFormat('"%s" gestartet.', $aApp[$i][0]) & @CRLF)
$hWnd = WinWait(StringFormat('[CLASS:%s]', $aApp[$i][1]), '', 10)
If Not IsHWnd($hWnd) Then
ProcessClose($iPID)
Else
If MsgBox(4, 'Versteckt starten', 'Ist "' & $aApp[$i][0] & '" sichtbar?') = 7 Then
WinSetState($hWnd, '', @SW_SHOW)
WinActivate($hWnd)
MsgBox(0, 'Schliessen', '"' & $aApp[$i][0] & '" wurde sichtbar, jetzt beenden.')
ProcessClose($iPID)
ConsoleWrite(StringFormat('"%s" geschlossen.', $aApp[$i][0]) & @CRLF)
Else
MsgBox(0, 'Schliessen', '"' & $aApp[$i][0] & '" wird geschlossen')
ProcessClose($iPID)
ConsoleWrite(StringFormat('"%s" geschlossen.', $aApp[$i][0]) & @CRLF)
EndIf
EndIf
Next
Alles anzeigen
Hat jemand eine Idee, wie man einen Start mit @SW_HIDE auf anderem Weg erzwingen kann?
Ist euch ein Grund bekannt für dieses Verhalten?