Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » "Сумасшедший" ProcessExists

Ответить
Настройки темы
"Сумасшедший" ProcessExists

Аватара для sashadeg

Старожил


Сообщения: 379
Благодарности: 6

Профиль | Отправить PM | Цитировать


Написал себе очередную "лентяйку-скрипт" для уничтожения процесса программы файлобменника при запуске он-лайн игры... Всем надеюсь понятен смысл этих действий.
Код: Выделить весь код
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" при наличии процесса, а рандомное четырехзначное значение...
Все скрипты ранее мной писавшиеся тоже перестали работать.... Компилированые работают.

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

-------
Ну вы ребята даёте...


Отправлено: 13:49, 08-06-2010

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


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

Отправлено: 14:18, 08-06-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для sashadeg

Старожил


Сообщения: 379
Благодарности: 6

Профиль | Отправить PM | Цитировать


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

Взято из справки "любимого" Валерия Иванова:
ProcessExists
--------------------------------------------------------------------------------
Проверка наличия указанного процесса.

Возвращаемое значение:
Значение 1 означает наличие процесса, иначе 0.

-------
Ну вы ребята даёте...


Отправлено: 14:25, 08-06-2010 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


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

Отправлено: 14:31, 08-06-2010 | #4


Аватара для kaster

Старожил


Сообщения: 367
Благодарности: 91

Профиль | Отправить PM | Цитировать


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

-------
Русское сообщество пользователей AutoIt
autoit@conference.jabber.ru - Конференция на jabber.ru


Отправлено: 15:57, 08-06-2010 | #5


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


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

; А если не уверен делается так:
If ProcessExists("hl2.exe") Then MsgBox(0, "", "ProcessExists")
If Not ProcessExists ("hl2.exe") Then MsgBox(0, "", "Not ProcessExists")
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:11, 08-06-2010 | #6


Аватара для sashadeg

Старожил


Сообщения: 379
Благодарности: 6

Профиль | Отправить PM | Цитировать


Цитата FlatX007:
; А если не уверен делается так: If ProcessExists("hl2.exe") Then MsgBox(0, "", "ProcessExists")
If Not ProcessExists ("hl2.exe") Then MsgBox(0, "", "Not ProcessExists") »
Всё время забываю что в Autoit можно писать такие "упращенные фразы". А то пишу всегда как в QBASIC...

-------
Ну вы ребята даёте...


Отправлено: 07:39, 09-06-2010 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » "Сумасшедший" ProcessExists

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Как удалить папку "Моя музыка","Мои Картинки", "Мое видео"? verdix Microsoft Windows 2000/XP 3 03-10-2009 23:46
Debian/Ubuntu - [решено] Пропали кнопки "свернуть","закрыть","во весь екран" в папках Alex.sys Общий по Linux 5 02-04-2009 11:13
Не получается найти все выпуски "Хакер"+"спец"+"железо" verdix Хочу все знать 5 29-11-2008 15:19
Приоритет в диспетчере: "реального времени", "средний", "выше среднего" alhimik PC Хочу все знать 3 28-11-2006 05:29
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") submaster Microsoft Windows NT/2000/2003 5 13-09-2006 12:29




 
Переход