autoit script help! stop Prozess, wenn 1 min lang LEER ist

575
michael johns

Ich habe dieses interessante Skript gefunden:

Opt ("WinTitleMatchMode", 3); 3 = genaue Titelübereinstimmung Opt ("TrayIconDebug", 1)

$ S_running = "check-4-app"; benennen Sie das Skript, wenn WinExists ($ S_running) und dann AutoItWinSetTitle ($ S_running) beendet wird.

$ title = "Unbenannt - Notepad" $ count = 0 Während 1 $ state = WinGetState ($ title) $ count + = 1

If $state = 15 Or $state = 47 Or $state = 0 Then $count = 0  If $count > 10 Then WinClose($title)  ToolTip("count = " & $count, 0, 0, "state = " & $state) Sleep(1000) WEnd 

Kann jemand dieses Skript so ändern, dass "My-Xtool.exe" von Prozessen gestoppt und geschlossen wird, nicht von Anwendungen, sondern nur, wenn es länger als 1 Minute inaktiv ist. Ist das möglich? Ich ru

n My-Xtool.exe und ich sehe, wie sich die Bytes-Werte ändern, aber manchmal sind diese Werte statisch, sie ändern den Wert nicht mehr. Das bedeutet, dass meine .exe-IDLE-Anweisung aktiviert wird. Dann möchte ich den Prozess automatisch stoppen, kann mir jemand helfen Das bitte? Danke dir

0
Superuser ist kein kostenloser Skriptschreibservice. "Ich habe diesen Code online gefunden, bitte ändern Sie ihn auf meinen Fall", klingt immer noch so, als würden Sie von uns erwarten, dass Sie Ihre Arbeit erledigen. Bitte probieren Sie ein bisschen mehr und stellen Sie konkrete Fragen, zeigen Sie zumindest einige Anstrengungen, um Ihr Problem zu lösen. Máté Juhász vor 6 Jahren 2
Ja, aber ich weiß nicht, wie ich zu PROZESSEN und nicht zu Anwendungen wechseln soll michael johns vor 6 Jahren 0

1 Antwort auf die Frage

0
Waldemar Bęben

Verwenden Sie eine ähnliche Methode wie ich, um Browser zu beenden

Local $aList = 0 Local $aProcesses = StringSplit('iexplore.exe|chrome.exe|firefox.exe|safari.exe|opera.exe|slimjet.exe', '|', $STR_NOCOUNT) ; Multiple processes For $i = 0 To UBound($aProcesses) - 1 $aList = ProcessList($aProcesses[$i]) If $aList[0][0] > 0 Then ; An array is returned and @error is NEVER set, so lets check the count. ;~ _ArrayDisplay($aList) Local $bIsProcessClosed = False ; Declare a variable to hold a boolean. For $j = 1 To $aList[0][0] $bIsProcessClosed = ProcessClose($aList[$j][1]) ; In AutoIt 0 or 1 can be considered boolean too. It's like a bit in SQL or in C, where 1 and 0 means true or false. If Not $bIsProcessClosed Then ConsoleWrite('CLOSE ERROR PID: ' & $aList[$j][1] & @CRLF) Next EndIf Next