stazher
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Всем привет! Хочу программно найти и завершить процесс "proga.exe" с помощью tlhelp32.h и вот такого кода (Borland C++): Код: #include <windows.hpp> #include <sysutils.hpp> #include <tlhelp32.h> #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[]) { //создаётся снимок состояния системы HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); HANDLE hProcess; //параметр TH32CS_SNAPPROCESS означает, что мы хотим узнать //только информацию о процессах bool Result = true; bool Find = false; //опишем структуру, в которой будет храниться эта информация PROCESSENTRY32 *ProcEntry = new PROCESSENTRY32(); char* FileName; //Поиск запущенной программы "proga.exe" Result = Process32First(hSnapshot, ProcEntry); FileName = ExtractFileName(ProcEntry->szExeFile).c_str(); if(FileName == "proga.exe") { hProcess = OpenProcess(PROCESS_TERMINATE, false, ProcEntry->th32ProcessID); //Программа найдена Find = true; //Вырубаем ее if(TerminateProcess(hProcess, 0)) //Ok { delete ProcEntry; //выгрузим из памяти системный снимок CloseHandle(hSnapshot); exit(0); } else { MessageBox(0,"Не удалось завершить-1",0,MB_OK); } } //Вызываемые функции - булевские. Поэтому, когда вернется false, //значит, информации боьше нет. => можно использовать цикл while(Result) { Result = Process32Next(hSnapshot, ProcEntry); if(Result) { FileName = ExtractFileName(ProcEntry->szExeFile).c_str(); if(FileName == "proga.exe") { hProcess = OpenProcess(PROCESS_TERMINATE, false, ProcEntry->th32ProcessID); //Программа найдена Find = true; //Вырубаем ее if(TerminateProcess(hProcess, 0)) //Ok { delete ProcEntry; //выгрузим из памяти системный снимок CloseHandle(hSnapshot); exit(0); } else { MessageBox(0,"Не удалось завершить-2",0,MB_OK); } } } } if(!Find) //Программа не найдена { MessageBox(0,"Программа не найдена",0,MB_OK); } return 0; } | Компилится, но почему-то не может найти искомую прогу. Подскажите в чем дело плз. | Всего записей: 109 | Зарегистр. 16-03-2006 | Отправлено: 12:16 05-12-2010 | Исправлено: stazher, 12:43 05-12-2010 |
|