1 (изменено: Dworkin, 2016-06-26 18:07:43)

Тема: AHK: узнать заморожен(suspend) ли процесс

Скажите пожалуйста можно ли как-то узнать заморожен(suspend) или завис процесс и как?

2

Re: AHK: узнать заморожен(suspend) ли процесс

Процесс не бывает заморожен, бывает замороженной ветка. Гугл в помощь по запросу "get thread suspend state".

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: узнать заморожен(suspend) ли процесс

Не, ветка не подходит, они же из одного ствола идут, а здесь именно нитки, параллельно.

4

Re: AHK: узнать заморожен(suspend) ли процесс

Да, я перепутал слово, но в русском чаще «поток» используется.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5 (изменено: Drugoy, 2016-06-27 13:08:51)

Re: AHK: узнать заморожен(suspend) ли процесс

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.
}

6

Re: AHK: узнать заморожен(suspend) ли процесс

И что этот код выдаёт?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7

Re: AHK: узнать заморожен(suspend) ли процесс

teadrinker
Если в Process Eplorer'e поставить любой процесс на паузу(на англ Suspend), то функция от Drugoy это определяет.

8

Re: AHK: узнать заморожен(suspend) ли процесс

Нет, он определяет только, заморожен ли один из его потоков.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9 (изменено: Malcev, 2016-06-27 16:35:12)

Re: AHK: узнать заморожен(suspend) ли процесс

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.
}

10

Re: AHK: узнать заморожен(suspend) ли процесс

Добрался до компьютера.
Спасибо огромное все работает