dimidrol |
Отправлено: 20.03.2004, 21:26 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 36
|
Привет всем.
Как узнать Pid приложения по имени и убить программу по ее Pid.
ета функция у меня неработает :/
bool Common::GetProcessByExeName(DWORD* Pid,AnsiString ExeName)
{
HANDLE hProcessSnap = NULL;
PROCESSENTRY32 pe32 = {0};
AnsiString temp="";
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPALL, NULL);
if(hProcessSnap == (void*)-1)
{
MessageBox(NULL, "oblom", "oblom", MB_OK|MB_ICONWARNING|MB_SYSTEMMODAL);
return false;
}
pe32.dwSize=sizeof(PROCESSENTRY32);
if(Process32First(hProcessSnap,&pe32)) temp=pe32.szExeFile;
if((temp.UpperCase()).Pos(ExeName))
{
*Pid= pe32.th32ProcessID;
CloseHandle (hProcessSnap);
return true;
}
pe32.dwSize=sizeof(PROCESSENTRY32);
while(Process32Next(hProcessSnap,&pe32))
{
temp=pe32.szExeFile;
if((temp.UpperCase()).Pos(ExeName))
{
*Pid= pe32.th32ProcessID;
CloseHandle(hProcessSnap);
return true;
}
pe32.dwSize=sizeof(PROCESSENTRY32);
}
CloseHandle(hProcessSnap);
*Pid=0;
return false;
}
у меня компилятор выдает ошибки:
Build
[C++ Error] Common.h(857): E2451 Undefined symbol 'SYSTEM_PROCESS_INFORMATION'
[C++ Error] Common.h(857): E2451 Undefined symbol 'pinfo'
[C++ Error] Common.h(857): E2451 Undefined symbol 'pinfo_last'
[C++ Error] Common.h(860): E2451 Undefined symbol 'PFNNtQuerySystemInformation'
[C++ Error] Common.h(860): E2108 Improper use of typedef 'PROC'
[C++ Error] Common.h(860): E2293 ) expected
[C++ Error] Common.h(868): E2188 Expression syntax
[C++ Error] Common.h(872): E2451 Undefined symbol 'progProcessId'
[C++ Error] Common.h(888): E2188 Expression syntax
Люди чего делать подскажите.
Заранее спасибо!!! |
|
dimidrol |
Отправлено: 21.03.2004, 03:15 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 36
|
Отвечаю сам
смотрите папку (Борланда)\Examples\Apps\ProcView |
|
klen |
Отправлено: 21.03.2004, 12:31 |
|
Машинист паровоза
Группа: Участник
Сообщений: 239
|
Ну вообще задача неоднозначная, представь что у тебя несколько процессов запущено, у них у всех с будет одинаковое exe имя, командная строка, даже пользовотель может быть один и тотже и тд. Как ты собираешься узнать какой из них нужен тебе? |
|
dimidrol |
Отправлено: 21.03.2004, 18:26 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 36
|
Да ты прав другие запущенные проги тоже закрижаются :-/
как узнать pid именно моего процесса я незнаю. а как ето сделать? |
|
klen |
Отправлено: 21.03.2004, 19:54 |
|
Машинист паровоза
Группа: Участник
Сообщений: 239
|
Опиши ситуацию.
Обязательно должно быть что-то что отличает "Его" который ты хочешь выбрать от других, ибо если не так , то то ты не можешь захотеть именно его, поnмучто сам не узнаешь какой захотеть из них.
Во как!
|
|