HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Реакция на процесс
  #1  
Старый 12.04.2010, 20:32
SultanOFF
Участник форума
Регистрация: 04.06.2009
Сообщений: 176
С нами: 8913664

Репутация: 0
По умолчанию Реакция на процесс

Здравствуйте. Мне нужно отследить появление нового процесса. Если появился процесс под именем xxx то допустим Моя прога делает тотото. Как можно такое сделать? Обьясните пожалуйста
 
Ответить с цитированием

  #2  
Старый 12.04.2010, 20:36
LMaster
Новичок
Регистрация: 15.06.2008
Сообщений: 13
С нами: 9423494

Репутация: 8
По умолчанию

В цикле перебирать имена процессов.
 
Ответить с цитированием

  #3  
Старый 12.04.2010, 20:41
TrueBit
Познающий
Регистрация: 21.11.2009
Сообщений: 77
С нами: 8668804

Репутация: 29
По умолчанию

PHP код:
Function IsProcesssRun(processname:string):boolean;
var 
Snapshot:Thandle;
proc:TprocessEntry32;
begin
result
:=false;
Snapshot:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if 
snapshot=INVALID_HANDLE_VALUE then exit;
proc.dwSize:=sizeof(TprocessEntry32);
if 
Process32First(snapshot,procthen
repeat
if proc.szExeFile=processname then
begin
  result
:=true;
  break;
end;
until not process32next(snapshot,proc);
closehandle(snapshot);
end
подключить модуль TLHELP32.
 
Ответить с цитированием

  #4  
Старый 12.04.2010, 21:17
SultanOFF
Участник форума
Регистрация: 04.06.2009
Сообщений: 176
С нами: 8913664

Репутация: 0
По умолчанию

ок спс, только не
Цитата:
CreateToolhelp32Snapshot(TH32CS_SNAPPROC ESS,0);
Цитата:
CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
 
Ответить с цитированием

  #5  
Старый 12.04.2010, 21:46
_nic
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
С нами: 10535289

Репутация: 107


По умолчанию

Можно через WMI,на msdn есть пример.
 
Ответить с цитированием

  #6  
Старый 12.04.2010, 22:03
cheater_man
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
С нами: 8680278

Репутация: 17
По умолчанию

Код:
Procedure wait_disp(*Interval)
While(1)
ShowWindow_(FindWindow_(NULL, "Диспетчер задач Windows"),#SW_HIDE)
ShowWindow_(FindWindow_(NULL, "Мой компьютер"),#SW_HIDE)
Delay(*Interval);
Wend
EndProcedure
Процедура отслеживает taskmg.exe, explorer.exe по заголовку и если появятся сворачивает их. Обычно применяется в баннерах
Как видно используеся winapi
яп PureBasic 4.40
 
Ответить с цитированием

  #7  
Старый 12.04.2010, 23:33
AlexTheC0d3r
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
С нами: 9365528

Репутация: 425
По умолчанию

Цитата:
Сообщение от cheater_man  
Код:
Procedure wait_disp(*Interval)
While(1)
ShowWindow_(FindWindow_(NULL, "Диспетчер задач Windows"),#SW_HIDE)
ShowWindow_(FindWindow_(NULL, "Мой компьютер"),#SW_HIDE)
Delay(*Interval);
Wend
EndProcedure
Процедура отслеживает taskmg.exe, explorer.exe по заголовку и если появятся сворачивает их. Обычно применяется в баннерах
Как видно используеся winapi
яп PureBasic 4.40
фигня... ему нужно отслеживать процесс..
отстойный синтаксис у PureBasic... мне синтаксис C нравится больше...
 
Ответить с цитированием

  #8  
Старый 13.04.2010, 07:03
neprovad
Постоянный
Регистрация: 19.10.2007
Сообщений: 794
С нами: 9769287

Репутация: 711


По умолчанию

PsSetCreateProcessNotifyRoutineEx
http://msdn.microsoft.com/en-us/library/ff559953.aspx
 
Ответить с цитированием

  #9  
Старый 13.04.2010, 07:03
W!z@rD
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
С нами: 10653446

Репутация: 836


По умолчанию

1) в цикле перебирать процессы;
2) хук на Zw/Nt/CreateProcess.

AlexTheC0d3r твоего мнение по поводу PB никто не спрашивал, всем глубоко насрать что тебе нравится. Предложи свой вариант решения задачи.

И cheater_man тоже херню ляпнул. Не у всех процессов есть окна.
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...

Последний раз редактировалось W!z@rD; 13.04.2010 в 08:07..
 
Ответить с цитированием

  #10  
Старый 13.04.2010, 10:43
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами: 10097606

Репутация: 3349


По умолчанию

2 neprovad нуда и ты думаешь человек полезит в ядро и специально будет для этого драйвер писать? Но главное в том, что пахать то будет тока на >= Vista SP1
А для 2000/XP придется юзать PsSetCreateProcessNotifyRoutine а там ты сможеш получить тока PID процесса, а из ядра довольно геморно будет узнать имя процесса. т.е. можно, но это будет через жопу, если для XP еще можно заюзать апишки спецаильные, то для 2000 врядли.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Защитить процесс C++ agrofyl2 С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 3 07.04.2010 22:27
Италия готовит собственный процесс против ресурса Pirate Bay Suicide Мировые новости. Обсуждения. 11 04.05.2009 13:38
Процесс над The Pirate Bay: итоги первой недели jerrri Мировые новости. Обсуждения. 3 27.02.2009 00:24
Многопоточность в Unix KEZ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 11 10.08.2005 18:29



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.