下面的代码的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);
}

解决方案 »

  1.   

    这样的程序我做过,你具体的代码我没有看,你可以查看一下,QQ.exe进程有时在任务管理器当中,不是全大写的,也不是小写,它是会变化的。
    你应该把这个进程的名称转换一下才成,比如全部小写或大写,然后再来进行比较。
      

  2.   

    楼上说的不错。不分大小写比较要这样用:
    if(0 == wcsicmp(pe.szExeFile,TEXT("QQ.exe")))还有,OpenProcess的时候最好有Debug权限,不然对于有的进程会失败。你问我的我已经发你邮箱了。 
      

  3.   

    谢谢一哥,我注意到要不分大小写比较了,试过了,只是问题不是出在这,就是Debug权限的问题。
      

  4.   

    大小写和权限
    -----------------------------------------------
    http://www.wantsoft.com
    隐形者软件代码交流博客
    -----------------------------------------------