本文实例讲述了VC使用TerminateProcess结束进程的方法,分享给大家供大家参考。具体实现方法如下:
int KillProcess(LPCSTR pszClassName, LPCSTR pszWindowTitle) { HANDLE hProcessHandle; ULONG nProcessID; HWND TheWindow; TheWindow = ::FindWindow( NULL, pszWindowTitle ); ::GetWindowThreadProcessId( TheWindow, &nProcessID ); hProcessHandle = ::OpenProcess( PROCESS_TERMINATE, FALSE, nProcessID ); return ::TerminateProcess( hProcessHandle, 4 ); } void CZxDlg::OnOK() { // TODO: Add extra validation here // CDialog::OnOK(); KillProcess("radmin.exe","Radmin Viewer") }void CZxDlg::OnButton1() { HANDLE hSnapShot = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if(hSnapShot == 0) return; PROCESSENTRY32 thePE; thePE.dwSize = sizeof(PROCESSENTRY32); //遍历正在运行的第一个系统进程 bool Status = Process32First(hSnapShot,&thePE); bool bHaveFlag = false; DWORD ProcessID = 0; while(Status) { //遍历正在运行的下一个系统进程 Status = Process32Next(hSnapShot,&thePE); CString jincheng ="qq.exe"; jincheng.MakeLower(); //找到相应的进程 **.exe if(0 == _tcscmp(thePE.szExeFile,_T(jincheng))) { bHaveFlag = true; ProcessID = thePE.th32ProcessID; //结束指定的进程 ProcessID if(!TerminateProcess(OpenProcess (PROCESS_TERMINATE||PROCESS_QUERY_INFORMATION,false,ProcessID),0)) { AfxMessageBox("无法终止指定的进程!",MB_ICONWARNING||MB_OK); } break; } } CloseHandle(hSnapShot); }
void kill(CString jin) { HANDLE hSnapShot = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if(hSnapShot == 0) return; PROCESSENTRY32 thePE; thePE.dwSize = sizeof(PROCESSENTRY32); //遍历正在运行的第一个系统进程 bool Status = Process32First(hSnapShot,&thePE); bool bHaveFlag = false; DWORD ProcessID = 0; while(Status) { //遍历正在运行的下一个系统进程 Status = Process32Next(hSnapShot,&thePE); CString jincheng ; jincheng=thePE.szExeFile; jincheng.MakeLower(); //找到相应的进程 **.exe if ( jincheng == jin) { bHaveFlag = true; ProcessID = thePE.th32ProcessID; //AfxMessageBox(thePE.szExeFile,MB_ICONWARNING||MB_OK); //结束指定的进程 ProcessID if(!TerminateProcess(OpenProcess (PROCESS_TERMINATE||PROCESS_QUERY_INFORMATION,false,ProcessID),0)) { AfxMessageBox("无法终止指定的进程!",MB_ICONWARNING||MB_OK); } break; } } CloseHandle(hSnapShot); }
希望本文所述对大家的VC程序设计有所帮助。
本文向大家介绍VC++进度条process Bar的用法实例,包括了VC++进度条process Bar的用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了VC进度条的用法实例,分享给大家供大家参考。具体实现代码如下: 希望本文所述对大家的VC++程序设计有所帮助。
本文向大家介绍unity3d 结束协程,包括了unity3d 结束协程的使用技巧和注意事项,需要的朋友参考一下 示例 通常,您将协程设计为在达到某些目标时自然终止。 要从协程“内部”阻止协程,您不能像在普通功能中早退一样简单地“返回”。而是使用yield break。 您还可以强制脚本启动的所有协程在完成之前停止。 从调用方停止特定协程的方法因启动方式而异。 如果您通过字符串名称启动了协程: 那么
线程的结束 现有问题 当内核线程终止时,会发生什么?如果就按目前的实现,我们会发现线程所执行的函数末尾会触发 Exception::InstructionPageFault 而终止,其中访问的的地址 stval = 0。 这是因为内核线程在执行完 entry_point 所指向的函数后会返回到 ra 指向的地址,而我们没有为其赋初值(初值为 0)。此时,程序就会尝试跳转到 0x0 地址,而显然它是
本文向大家介绍VC++中进程与多进程管理的方法详解,包括了VC++中进程与多进程管理的方法详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了VC++中进程与多进程管理的方法,分享给大家供大家参考。具体方法分析如下: 摘要: 本文主要介绍了多任务管理中的多进程管理技术,对进程的互斥运行、子进程的创建与结束等作了较详细的阐述。 关键词: VC++6.0;进程;环境变量;子进程 进程 进程
与目标虚拟机断开连接,地址:'127.0.0.1:60359',传输:'socket' 进程结束,退出代码为130(被信号2:SIGINT中断) 我哪里错了?我能做什么?Intellij的更新没有改变任何事情。
这个问题可以更好地表述为:如何在不阻塞的情况下检测InputStream中的EOF 我有一个java程序,它可以直接从System.in中获取输入(不使用扫描器),我也可以像任何程序一样直接将输入管道输入到java程序中。但是,当我将输入管道输入到程序中时,程序继续运行。这个想法是,如果输入被管道输入,就停止程序,但如果我们在等待用户输入,就保持程序运行。 编辑:无论出于什么原因,我花了大约2个小