[code]
#include <tlhelp32.h>
#pragma comment(lib, "Psapi.lib")
VOID KillProcess(LPCSTR pszName)
{
HANDLE hProcessSnap = NULL;
BOOL bRet = FALSE;
PROCESSENTRY32 pe32 = {0};
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == (HANDLE)-1)
return;
pe32.dwSize = sizeof(PROCESSENTRY32);
if (Process32First(hProcessSnap, &pe32))
{
BOOL bCurrent = FALSE;
MODULEENTRY32 me32 = {0};
do
{
bCurrent = GetProcessModule(pe32.th32ProcessID, pszName);
if(bCurrent)
{
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID);
if(hProcess)
{
if(TerminateProcess(hProcess, 0))
{
unsigned long nCode;
GetExitCodeProcess(hProcess, &nCode);
}
CloseHandle(hProcess);
}
}
}
while (Process32Next(hProcessSnap, &pe32));
}
CloseHandle (hProcessSnap);
return;
}
[/code]
#include <tlhelp32.h>
#pragma comment(lib, "Psapi.lib")
VOID KillProcess(LPCSTR pszName)
{
HANDLE hProcessSnap = NULL;
BOOL bRet = FALSE;
PROCESSENTRY32 pe32 = {0};
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == (HANDLE)-1)
return;
pe32.dwSize = sizeof(PROCESSENTRY32);
if (Process32First(hProcessSnap, &pe32))
{
BOOL bCurrent = FALSE;
MODULEENTRY32 me32 = {0};
do
{
bCurrent = GetProcessModule(pe32.th32ProcessID, pszName);
if(bCurrent)
{
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID);
if(hProcess)
{
if(TerminateProcess(hProcess, 0))
{
unsigned long nCode;
GetExitCodeProcess(hProcess, &nCode);
}
CloseHandle(hProcess);
}
}
}
while (Process32Next(hProcessSnap, &pe32));
}
CloseHandle (hProcessSnap);
return;
}
[/code]
'Windows > MFC' 카테고리의 다른 글
MSXML (0) | 2013.10.02 |
---|---|
클립보드 상태 확인 (0) | 2013.10.02 |
Edit box readonly (0) | 2013.10.02 |
MSVCR80D.dll error (0) | 2013.10.02 |
socket 포트할당시 빈포트(미사용포트) 확인방법 (0) | 2013.10.02 |