Тема: AHK: узнать заморожен(suspend) ли процесс
Скажите пожалуйста можно ли как-то узнать заморожен(suspend) или завис процесс и как?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Скажите пожалуйста можно ли как-то узнать заморожен(suspend) или завис процесс и как?
Процесс не бывает заморожен, бывает замороженной ветка. Гугл в помощь по запросу "get thread suspend state".
Не, ветка не подходит, они же из одного ствола идут, а здесь именно нитки, параллельно.
Да, я перепутал слово, но в русском чаще «поток» используется.
isProcessSuspended(pid) ; Retrieves another process's suspension state.
{ ; 0 = Unknown, 1 = Other, 2 = Ready, 3 = Running, 4 = Blocked, 5 = Suspended Blocked, 6 = Suspended Ready. http://msdn.microsoft.com/en-us/library/aa394372%28v=vs.85%29.aspx
For thread In ComObjGet("winmgmts:").ExecQuery("SELECT * FROM Win32_Thread WHERE ProcessHandle = " pid)
If (thread.ThreadWaitReason == 5)
Return 1 ; Suspended.
Return 0 ; Not suspended.
}
И что этот код выдаёт?
teadrinker
Если в Process Eplorer'e поставить любой процесс на паузу(на англ Suspend), то функция от Drugoy это определяет.
Нет, он определяет только, заморожен ли один из его потоков.
isProcessSuspended(pid) ; Retrieves another process's suspension state.
{ ; 0 = Unknown, 1 = Other, 2 = Ready, 3 = Running, 4 = Blocked, 5 = Suspended Blocked, 6 = Suspended Ready. http://msdn.microsoft.com/en-us/library/aa394372%28v=vs.85%29.aspx
For thread In ComObjGet("winmgmts:").ExecQuery("SELECT * FROM Win32_Thread WHERE ProcessHandle = " pid)
If (thread.ThreadWaitReason != 5)
Return 0 ; Not suspended.
Return 1 ; Suspended.
}
Добрался до компьютера.
Спасибо огромное все работает
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться