为何终止不了进程啊(附源程序)?在线等...
void OnBUTTONCtrl()
{ static fin;
BOOL ret;
PROCESS_INFORMATION pi={0};
STARTUPINFO si = {sizeof(si)};
if(!fin)
{
ret=CreateProcess(NULL, "speech.exe", NULL, NULL, TRUE, 0, NULL,
NULL, &si, &pi);
if(!ret) {MessageBox("无法执行功能文件,请与作者联系!","出错
信息...",MB_OK);
return ;
}
GetDlgItem(IDC_BUTTON_Ctrl)->SetWindowText("********");
fin=1;
}
else
{
HANDLE hProcess;
HANDLE hCurrentProcess;
HANDLE hProcessToken;
TOKEN_PRIVILEGES tp;
LUID luid;
hCurrentProcess=GetCurrentProcess();
OpenProcessToken(hCurrentProcess,TOKEN_ALL_ACCESS,&hProcessToken);
LookupPrivilegeValue(NULL,"SeDebugPrivilege",&luid);
tp.PrivilegeCount=1;
tp.Privileges[0].Luid=luid;
tp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(
hProcessToken,
FALSE,
&tp,
sizeof(TOKEN_PRIVILEGES),
(PTOKEN_PRIVILEGES)NULL,
(PDWORD)NULL);
UpdateData(TRUE);
if((pi.hProcess==NULL)&&(pi.hProcess!=0))
::MessageBox(NULL,"错误,无法打开进程!","信息提示",MB_OK);
if(::TerminateProcess(pi.hProcess,0))
::MessageBox(NULL,"成功杀死进程!:)","信息提示",MB_OK);
::CloseHandle(pi.hProcess);
GetDlgItem(IDC_BUTTON_Ctrl)->SetWindowText("^^^^^^^");
fin=0;
}