7 Stimmen

Prozesse beenden - AHK

Bisher habe ich:

Prozess, Existiert, notepad.exe
Prozess, Schließen, %p_id%

Wie setzen Sie ahk, um den Prozess zu beenden, wenn er existiert? Ich habe gelesen, dass es etwas mit der PID zu tun hat, weiß aber nicht, wie man das umsetzt.

11voto

Elliot DeNolf Punkte 2900

Schauen Sie sich die Dokumentation an.

Sie können einfach nach dem Namen des Prozesses suchen, um ihn zu beenden:

Process, Close, notepad.exe

Wenn der Prozess nicht existiert, passiert nichts.

Falls Sie den Prozess trotzdem mittels der pid beenden möchten, müssen Sie den Befehl WinGet verwenden, um die pid abzurufen.

2voto

Dieses AHK-Skript beendet den aktiven Prozess, wenn Sie Ctrl + Alt + K drücken:

^!k::
{
    WinGet, xPID, PID, A
    Process, Close, %xPID%
}
return

2voto

T_Lube Punkte 186

Es gibt mindestens zwei Möglichkeiten, die PID eines Fensters sofort zu erhalten, an die ich denken kann

1:

WinGet, My_PID, PID, WinTitle

2:

Run, ProgramFilePath "Args", Options, My_PID

Die erste Möglichkeit ist, die PID eines bereits laufenden Fensters zu erhalten, und die zweite Möglichkeit besteht darin, eine PID zu erhalten, wenn das Programm mit AHK geöffnet wird. In beiden Fällen enthält die Variable "My_PID" jetzt die Fensterprozess-ID

Um Ihre Frage nach dem Schließen eines Prozesses zu beantworten, wenn er existiert, könnten Sie es mit ein paar Methoden versuchen.

ifWinExist ahk_pid %My_PID%
    Process, Close, %My_PID%
; ODER
Process, Exist, %My_PID% ; aus meinen obigen Beispielen
;Process, Exist, notepad.exe ; aus Ihrem obigen Beispiel
If ErrorLevel ; Errorlevel wird auf die übereinstimmende PID gesetzt, wenn sie gefunden wird
    Process, Close, %ErrorLevel%

Ich denke, das sollte Ihre konkrete Frage beantworten

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X