手机
当前位置:查字典教程网 >编程开发 >C语言 >VC使用TerminateProcess结束进程实例
VC使用TerminateProcess结束进程实例
摘要:本文实例讲述了VC使用TerminateProcess结束进程的方法,分享给大家供大家参考。具体实现方法如下:复制代码代码如下:intKil...

本文实例讲述了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使用TerminateProcess结束进程实例】相关文章:

getdate()函数的用法实例

linux c多线程编程实例代码

解析四方定理的应用

使用map实现单词转换的实例分析

VC6.0如何创建以及调用动态链接库实例详解

c语言B树深入理解

VC实现图片拖拽及动画的实例

深入理解C语言中编译相关的常见错误

C语言中判断int,long型等变量是否赋值的方法详解

使用OpenGL实现3D立体显示的程序代码

精品推荐
分类导航