Перейти к содержимому

Фотография

Проверка процесса


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 Angel

Angel

    Новый участник

  • Members
  • Pip
  • 34 сообщений

Отправлено 05 февраля 2007 - 17:44

Надо проверять наличие процесса из робота. Если процесс есть то ждем , если он закончился то идем дальше .....
Как можно сделать ?
  • 0

#2 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 05 февраля 2007 - 23:30

Как насчет использования ModuleVP? Что-нибудь вроде Result = ModuleVP (Exists, "Name=my_process.exe", "VP=Module Existence")
  • 0
Дмитрий Шевченко

HP Software

#3 Angel

Angel

    Новый участник

  • Members
  • Pip
  • 34 сообщений

Отправлено 06 февраля 2007 - 09:46

Как насчет использования ModuleVP? Что-нибудь вроде Result = ModuleVP (Exists, "Name=my_process.exe", "VP=Module Existence")

Просмотр сообщения

А поподробнее можно ? Как она проверит наличие процесса с известным ID.
  • 0

#4 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 06 февраля 2007 - 17:48

А поподробнее можно ? Как она проверит наличие процесса с известным ID.

Вы не уточняли по какому критерию вы хотите распознавать процесс. Если имя процесса вам не подходит, а вы хотите его распознавать по PID, то не уверен, что ModuleVP вам поможет (покопайтесь в параметрах ModuleVP, может что-то и отыщете). Ну и, понятное дело, всегда есть возможность работать с функциями Win32 API напрямую.
  • 0
Дмитрий Шевченко

HP Software

#5 Angel

Angel

    Новый участник

  • Members
  • Pip
  • 34 сообщений

Отправлено 07 февраля 2007 - 09:47

А поподробнее можно ? Как она проверит наличие процесса с известным ID.

Вы не уточняли по какому критерию вы хотите распознавать процесс. Если имя процесса вам не подходит, а вы хотите его распознавать по PID, то не уверен, что ModuleVP вам поможет (покопайтесь в параметрах ModuleVP, может что-то и отыщете). Ну и, понятное дело, всегда есть возможность работать с функциями Win32 API напрямую.

Просмотр сообщения

Насчет Win32 API какую функцию можно использовать ???? Я пробовал OpenProcess, в хелпе написано что она возвращает NULL если процесс открыть не удалось. Однако даже если процесса нет , Null она невозвращает всегда возвращает различный хендл к процессу. Если есть кусок кода , буду благодарен.
  • 0

#6 Angel

Angel

    Новый участник

  • Members
  • Pip
  • 34 сообщений

Отправлено 07 февраля 2007 - 10:49

Да , кстати вызываю командой shell консольное приложение cmd.exe
  • 0

#7 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 07 февраля 2007 - 16:10

Насчет Win32 API какую функцию можно использовать ???? Я пробовал OpenProcess, в хелпе написано что она возвращает NULL если процесс открыть не удалось. Однако даже если процесса нет , Null она невозвращает всегда возвращает различный хендл к процессу.  Если есть кусок кода , буду благодарен.

Примера кода у меня нет. Посмотрите на функцию EnumProcesses. Она возвращает список всех PID в системе. Если ваш PID окажется в этом списке, значит процесс еще жив.

P.S. А у вас сразу несколько cmd.exe запущено во время выполнения теста?
  • 0
Дмитрий Шевченко

HP Software

#8 Angel

Angel

    Новый участник

  • Members
  • Pip
  • 34 сообщений

Отправлено 07 февраля 2007 - 16:30

Насчет Win32 API какую функцию можно использовать ???? Я пробовал OpenProcess, в хелпе написано что она возвращает NULL если процесс открыть не удалось. Однако даже если процесса нет , Null она невозвращает всегда возвращает различный хендл к процессу.  Если есть кусок кода , буду благодарен.

Примера кода у меня нет. Посмотрите на функцию EnumProcesses. Она возвращает список всех PID в системе. Если ваш PID окажется в этом списке, значит процесс еще жив.

P.S. А у вас сразу несколько cmd.exe запущено во время выполнения теста?

Просмотр сообщения

Впринципе, я могу добиться чтоб в каждый момент времени был запущен только один cmd. Для данного случая есть варианты ????
Незнаю с чем связано, но ModuleVP неработает для консольных приложений (у меня во всяком случае). Может есть какие-нить замечания по ее использованию ??? Я пишу просто
Result = ModuleVP (Exists, "Name=cmd.exe", "VP=Module Existence")
она для cmd всегда возвращает Result=0 (во время отладки) .
Пойду пока смотреть EnumProcesses .....
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных