프로세스 핸들을 찾을때 Winget, id, id, a 이런식으로 진행하곤 합니다.
하지만 프로세스가 분명 존재하는데 타이틀이 없는 경우 그리고 창이 뜨지 않을 때는 id 를 찾기가 난감하죠
그럴 때는 프로세스가 뜨기 전에 프로세스 리스트를 받아놓고
프로세스가 뜬 후 다시 리스트를 받아서 둘의 공통 프로세스만 지워주면 새롭게 생성된 프로세스 id 만 남게 됩니다.
Proc_List(Process, Condition) {
WinGet, winList, List, % Process
Loop, % winList {
WinGetTitle, b, % "ahk_id" winList%A_Index%
if(b=Condition)
a .= winList%A_Index%
}
return a
}
a := Proc_List("ahk_exe aa.exe", "") ;프로세스 생성 전
b := Proc_List("ahk_exe aa.exe", "") ;프로세스 생성 후
Msgbox, % StrReplace(b, a) ;둘 빼기