Тема: AHK: найти PID процесса по CommandLine
Есть chrome, он имеет много процессов на время нужно останавливать процесс у которого известно комманду запуска.
chrome.exe "C:\Users\Sat\AppData\Local\Chromium\Application\chrome.exe" --type=nacl-loader --service-request-channel-token=15AF08ACA73CB3C66A31E74BB7FF1500 --mojo-platform-channel-handle=6196 --ignored=" --type=renderer " /prefetch:8nacl-loader- константа, по ней и думаю искать процесс.
Потом при клике на окно chrome нужно восстанавливать процесс.
Gui, Add, ListView, x2 y0 w400 h500, Process Name|Command Line
for process in ComObjGet("winmgmts:").ExecQuery("Select * from Win32_Process")
LV_Add("", process.ProcessId, process.CommandLine)
Gui, Show,, Process ListВот таким кодом получается увидеть и PID и команду запуска, но как найти строку с константой и использовать PID с неё?
Вот так думаю останавливать и запускать процесс
Process_Resume("5884")
;============================== Working on WinXP+
Process_Suspend(PID_or_Name){
PID := (InStr(PID_or_Name,".")) ? ProcExist(PID_or_Name) : PID_or_Name
h:=DllCall("OpenProcess", "uInt", 0x1F0FFF, "Int", 0, "Int", pid)
If !h
Return -1
DllCall("ntdll.dll\NtSuspendProcess", "Int", h)
DllCall("CloseHandle", "Int", h)
}
Process_Resume(PID_or_Name){
PID := (InStr(PID_or_Name,".")) ? ProcExist(PID_or_Name) : PID_or_Name
h:=DllCall("OpenProcess", "uInt", 0x1F0FFF, "Int", 0, "Int", pid)
If !h
Return -1
DllCall("ntdll.dll\NtResumeProcess", "Int", h)
DllCall("CloseHandle", "Int", h)
}
ProcExist(PID_or_Name=""){
Process, Exist, % (PID_or_Name="") ? DllCall("GetCurrentProcessID") : PID_or_Name
Return Errorlevel
}
