"Сумасшедший" ProcessExists

Ответить
Аватара пользователя
sashadeg

"Сумасшедший" ProcessExists

Сообщение sashadeg »

Написал себе очередную "лентяйку-скрипт" для уничтожения процесса программы файлобменника при запуске он-лайн игры... Всем надеюсь понятен смысл этих действий.



Код:

Код: Выделить всё

While 1
	$process_hl=ProcessExists ("hl2.exe")
if  $process_hl = 1 Then
	ProcessClose ("Shareman.exe")
Else
	   $process_sh=ProcessExists ("Shareman.exe")
	If $process_sh = 0 Then
		Run("C:\Program Files\Shareman\Shareman.exe")
	EndIf
EndIf
Sleep(3000)
WEnd

Но программы УПОРНО не хотела работать!!! Проверил всё, что только можно!!!

Пока дело не дошло до проверки функции "ProcessExists": оказывается эта функция "решила" возвращать не "1" при наличии процесса, а рандомное четырехзначное значение...

Все скрипты ранее мной писавшиеся тоже перестали работать.... Компилированые работают.



Хоть я и переписал прогу, чтобы она работала даже и при возвращении "$$$$" но все равно интересно почему так... и как это исправить?
Аватара пользователя
Iska

Re: "Сумасшедший" ProcessExists

Сообщение Iska »

sashadeg, с какого перепуга сия функция должна возвращать единицу? В
документации
ясно сказано: при отсутствии процесса возвращается «0», при наличии процесса — его PID.
Аватара пользователя
sashadeg

Re: "Сумасшедший" ProcessExists

Сообщение sashadeg »

Значит наши документации писали разные люди:



Взято из справки "любимого" Валерия Иванова:

ProcessExists

--------------------------------------------------------------------------------

Проверка наличия указанного процесса.



Возвращаемое значение:

Значение 1 означает наличие процесса, иначе 0.

Аватара пользователя
Iska

Re: "Сумасшедший" ProcessExists

Сообщение Iska »

Мне сложно сказать, почему там переведено именно так. Не знаю, как было в версии 2.xx, но в AutoIt 3.xx изначально было именно так (можете сами пройтись поиском ключевой фразы «ProcessExists» по странице
Сhangelog
). Так что — загадка.
Аватара пользователя
kaster

Re: "Сумасшедший" ProcessExists

Сообщение kaster »

В очередной раз убеждаюсь, что русская справка от г-на Иванова, в свете последних версий, приносит больше вреда нежели пользы
Аватара пользователя
FlatX007

Re: "Сумасшедший" ProcessExists

Сообщение FlatX007 »

Код:

Код: Выделить всё

; Кстати эксперименты приносят не плохие результаты =)
ConsoleWrite(ProcessExists("hl2.exe") & @CRLF)
; А если не уверен делается так:
If ProcessExists("hl2.exe") Then MsgBox(0, "", "ProcessExists")
If Not ProcessExists ("hl2.exe") Then MsgBox(0, "", "Not ProcessExists")
Аватара пользователя
sashadeg

Re: "Сумасшедший" ProcessExists

Сообщение sashadeg »

Цитата FlatX007:



; А если не уверен делается так: If ProcessExists("hl2.exe") Then MsgBox(0, "", "ProcessExists")

If Not ProcessExists ("hl2.exe") Then MsgBox(0, "", "Not ProcessExists")
"Сумасшедший" ProcessExists




Всё время забываю что в Autoit можно писать такие "упращенные фразы". А то пишу всегда как в QBASIC...
Ответить

Вернуться в «AutoIt»