WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Отследить процесс, породивший окно...

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Отследить процесс, породивший окно...
Molibden опубликован 28-05-2001 13:03 MSK   Click Here to See the Profile for Molibden   Click Here to Email Molibden  
Доброго всем времени суток,

Подскажите, плз, как отследить активность процесса из своей проги. Скажем, активизировалось нужное окно, например, по названию. Определили ID процесса, его породившего, при помощи GetWindowProcessID. А дальше? Какими функциями просматривать process list, чтобы засечь, когда процесс будет завершён?

Спасибо

vladil опубликован 29-05-2001 20:07 MSK     Click Here to See the Profile for vladil  Click Here to Email vladil     
Try sample SPY in msdn
Molibden опубликован 31-05-2001 00:16 MSK     Click Here to See the Profile for Molibden  Click Here to Email Molibden     
2vladil: thanx, но это не совсем то. Более подходящий фрагмент кода нашёл в исходниках BO2K

typedef struct __threadinfo {
DWORD dwThreadID;
struct __threadinfo *next;
} THREADINFO;

typedef struct __procinfo {
DWORD dwProcID;
THREADINFO *pThread;
char svApp[MAX_PATH+1];
struct __procinfo *next;
} PROCESSINFO;


PROCESSINFO *CreateProcListSnapshot(char *svName)
{
HANDLE hSnap;
PROCESSINFO *pProcCur;
THREADINFO *pThreadCur;
PROCESSINFO phd;
PROCESSENTRY32 pe;
THREADENTRY32 te;

if(svName!=NULL)
{
if(svName[0]=='\0') svName=NULL;
}

if(g_bIsWinNT

Molibden опубликован 31-05-2001 00:43 MSK     Click Here to See the Profile for Molibden  Click Here to Email Molibden     
Sorry 2All, не учёл ограничений на размер msg. Не вижу всего запостенного кода :(
Demo_S опубликован 31-05-2001 17:17 MSK     Click Here to See the Profile for Demo_S  Click Here to Email Demo_S     
2Molibden Тут вроде нет ограничения на размер месаги, просто символ "две вертикальные черты" форум обрабатывает как конец месаги....

А вообще, приведенного куска я думаю достаточно, тчобы взять сурсы Bo2k, найти это место и разобратся.

Wander опубликован 01-06-2001 06:08 MSK     Click Here to See the Profile for Wander  Click Here to Email Wander     
#include <tlhelp32.h>
PROCESSENTRY32 PC32;
HWND hnd;
hnd=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if ((int)hnd==-1)
return;
PC32.dwSize=sizeof(PC32);
int i=Process32First(hnd,&PC32);
while (i) {
// Ваш код
// PID процесса берётся из PC32.th32ProcessID;
// Имя файла через ExtractFileName(PC32.szExeFile);
ListBox1->Items->Add ((AnsiString)PC32.szExeFile);
i=Process32Next(hnd,&PC32);
};
CloseHandle(hnd);

так получаешь лист процессов, что бы дождатся завершения процесса, вот так кажется:

while(true)
{
i=WaitForSingleObjectEx(PC32.th32ProcessID,INFINITE,FALSE);
if((i==0)

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.