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;   }     |         Компилится, но почему-то не может найти искомую прогу. Подскажите в чем дело плз. |   Всего записей: 111 | Зарегистр. 16-03-2006 | Отправлено:  12:16 05-12-2010  | Исправлено: stazher,   12:43 05-12-2010    |  
  |