프로세스명으로 프로세스 죽이는 함수 | |||
| |||
사용법 : ExitProcessName("IEXPLORE.EXE"); //한줄이면 됨..ㅋ */ #include "psapi.h" // Psapi.lib 라이브러리 추가 해야 됨 [VS 2003 프로젝트 속성-링커-입력-추가종속성]에 넣어줄것 [VS6.0-project-settings-Link 탭에 Object/library modles에 넣어 줄것! ] //psapi.h MS에서 지원해주는 거임 2003은 그냥 컴파일되나 6.0은 SDK 설치 해야 됨.. void ExitProcessName(CString strProcessName) { DWORD aProcesses[1024], cbNeeded, cProcesses; unsigned int i; if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) ) return; // Calculate how many process identifiers were returned. cProcesses = cbNeeded / sizeof(DWORD); // Print the name and process identifier for each process. for ( i = 0; i < cProcesses; i++ ) { char szProcessName[MAX_PATH] = "unknown"; HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, aProcesses[i] ); if (NULL != hProcess ) { HMODULE hMod; DWORD cbNeeded; if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod), &cbNeeded) ) { GetModuleBaseName( hProcess, hMod, szProcessName, sizeof(szProcessName) ); } } bool bRet; if(strcmp(szProcessName,(LPSTR)(LPCTSTR)strProcessName)==0) { HANDLE hProcess = NULL; hProcess = ::OpenProcess(PROCESS_ALL_ACCESS, FALSE, aProcesses[i]); if(hProcess != NULL) { DWORD ExitCode = 0; GetExitCodeProcess( hProcess, &ExitCode ); bRet = ::TerminateProcess(hProcess, ExitCode ); if( bRet ) { ::WaitForSingleObject(hProcess, INFINITE); } ::CloseHandle(hProcess); } } CloseHandle( hProcess ); } } Tags: ExitProcessName process 윈도우즈 | |||
| |||
| |||
Login for comment |
OTHER POSTS IN THE SAME CATEGORY 로컬 IP 알아내기 |