Название: QProcess отслеживание процесса. Помогите плиз!
Отправлено: G-virus от Декабрь 29, 2009, 13:28
Уважаемые IT-шники. У меня такая задача: нужно поставить в событие процедуру обнаружения необходимых процессов, и в случае их обнаружения, убивать. Например программа сканирует список процессов, и если обнаружила допустим firefox.exe то сразу его убивает. Как это сделать? Зараннее спасибо! :)
P.S. И желательно чтобы прога не повисала в это время
Название: Re: QProcess отслеживание процесса. Помогите плиз!
Отправлено: lit-uriy от Декабрь 29, 2009, 13:52
Эта задача распадается минимум на две самостоятельные темы: 1) получение списка процессов 2) завершение процесса.
Раздели на две темы, дело быстрее пойдёт и пользы форумчанам будет больше.
Название: Re: QProcess отслеживание процесса. Помогите плиз!
Отправлено: G-virus от Декабрь 29, 2009, 13:56
Раздели на две темы, дело быстрее пойдёт и пользы форумчанам будет больше.
ок
Название: Re: QProcess отслеживание процесса. Помогите плиз!
Отправлено: niXman от Декабрь 29, 2009, 14:18
какая ОС?
Название: Re: QProcess отслеживание процесса. Помогите плиз!
Отправлено: G-virus от Декабрь 29, 2009, 14:26
какая ОС?
винда ХР, я в другой теме уже написал :)
Название: Re: QProcess отслеживание процесса. Помогите плиз!
Отправлено: niXman от Декабрь 29, 2009, 14:32
Список процессов. Только типы поправь. C++ (Qt) /***************************************************************************/ class LProcessInfo { public: LProcessInfo() { memset( &pi, 0, sizeof(PROCESSENTRY32) ); } LProcessInfo( PROCESSENTRY32 p ) { memset( &pi, 0, sizeof(PROCESSENTRY32) ); init(p); } ~LProcessInfo() { } /**/ void init( PROCESSENTRY32 p ) { memcpy( &pi, &p, sizeof(PROCESSENTRY32) ); } /**/ luint32 id() const { return pi.th32ProcessID; } luint32 size() const { return pi.dwSize; } luint32 usage() const { return pi.cntUsage; } luint32 module_id() const { return pi.th32ModuleID; } luint32 threads() const { return pi.cntThreads; } luint32 parent_id() const { return pi.th32ParentProcessID; } lint32 parent_pri() const { return pi.pcPriClassBase; } luint32 flags() const { return pi.dwFlags; } const lchar*name() const { return &pi.szExeFile[0]; } /**/ bool operator< ( const LProcessInfo& pi ) { return l_strcmpi( name(), pi.name() ) < 0; } private: PROCESSENTRY32 pi; }; /***************************************************************************/ class LProcessInfoList: public LVector<LProcessInfo> { public: LProcessInfoList() { refresh(); } ~LProcessInfoList() {} /**/ void refresh() { HANDLE pl; PROCESSENTRY32 pe; /**/ pl = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); pe.dwSize = sizeof(PROCESSENTRY32); pe.th32ParentProcessID = 0; /**/ if ( Process32First(pl, &pe) ) { do { push_back( LProcessInfo(pe) ); pe.th32ParentProcessID = 0; } while ( Process32Next(pl, &pe) ); } CloseHandle(pl); } }; /***************************************************************************/
Название: Re: QProcess отслеживание процесса. Помогите плиз!
Отправлено: G-virus от Декабрь 29, 2009, 14:35
Спс) Щас буду пробовать :)
|