下面的代码的VC6版本是可以关闭qq的,不知道2005下为什么不能关闭,请高手帮忙
void KillQQ()
{
HANDLE hSnapshot;
hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32 pe;
Process32First(hSnapshot,&pe);
do
{
if(0 == wcscmp(pe.szExeFile,TEXT("QQ.exe")))
{
HANDLE hProcess;
hProcess = OpenProcess(PROCESS_TERMINATE,FALSE,pe.th32ProcessID);
if(hProcess)
{
TerminateProcess(hProcess,0);
}
}
}
while(Process32Next(hSnapshot,&pe));
CloseHandle(hSnapshot);
}
void KillQQ()
{
HANDLE hSnapshot;
hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32 pe;
Process32First(hSnapshot,&pe);
do
{
if(0 == wcscmp(pe.szExeFile,TEXT("QQ.exe")))
{
HANDLE hProcess;
hProcess = OpenProcess(PROCESS_TERMINATE,FALSE,pe.th32ProcessID);
if(hProcess)
{
TerminateProcess(hProcess,0);
}
}
}
while(Process32Next(hSnapshot,&pe));
CloseHandle(hSnapshot);
}
你应该把这个进程的名称转换一下才成,比如全部小写或大写,然后再来进行比较。
if(0 == wcsicmp(pe.szExeFile,TEXT("QQ.exe")))还有,OpenProcess的时候最好有Debug权限,不然对于有的进程会失败。你问我的我已经发你邮箱了。
-----------------------------------------------
http://www.wantsoft.com
隐形者软件代码交流博客
-----------------------------------------------