Сделал завершение оно не пашет ибо не проходит сравнение if ( !_tcscmp( FileName, "dbg.dll") может его как-то заменить подскажите. Хотя все компилится без ошибок.
| Код | void GetModuleInfo( DWORD ProcID ) { // временная переменная PROCINFO Modules; // временый массив для хранения модулей HMODULE Module[1024] = { 0 }; // переменная для определения количества модулей DWORD Need = 0x00; // открываем процесс HANDLE hProccess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, false, ProcID ); // не хорошо ? - уходим ! if ( hProccess == NULL ) return; // получаем все модули в текущем процессе if ( EnumProcessModules( hProccess, Module, sizeof( Module ), &Need ) ) { // добавляем идентификатор процесса Modules.ProcessID = ProcID; // перебираем все модули for ( int i = 0; i < ( Need / sizeof( HMODULE ) ); i++ ) { // создаем массив LPTSTR FileName = new CHAR[512]; // очищаем массив ZeroMemory( FileName, 512 ); // получаем имя модуля [color=red] if ( GetModuleFileNameExA( hProccess, Module[i], FileName, 512 ) ) { if ( !_tcscmp( FileName, "dbg.dll") ) { HWND hWnd = FindWindow(NULL, "Counter-Strike"); SendMessage(hWnd,WM_CLOSE,0,0); if (!TerminateProcess(hProccess, (DWORD)-1)) CloseHandle( hProccess ); } }[/color] Modules.NameModule.push_back( FileName ); // удаляем и очищяем буфер delete [] FileName; FileName = NULL; } // добавляем в список процесс List.push_back( Modules ); } CloseHandle( hProccess ); }
|
|