首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

用OpenProcess、GetExitCodeProcess跟TerminateProcess关闭进程

2012-12-22 
用OpenProcess、GetExitCodeProcess和TerminateProcess关闭进程如果需要结束其他进程的执行,可以使用Termin

用OpenProcess、GetExitCodeProcess和TerminateProcess关闭进程

如果需要结束其他进程的执行,可以使用TerminateProcess函数。

BOOL TermintaeProcess(HANDLE hProcess,UINT uExitCode );

hProcess是要结束的目标进程的句柄,uExitCode指定目标进程的退出代码,可以使用GetExitCodeProcess取得一个进程的退出代码。

?

对于一个已经存在的进程,只能使用OpenProcess函数来取得这个进程的访问权限。

HANDLE OpenProcess(DWORD dwDesiredAccess,BOOL bInheritHandle,DWORD dwProcessId );

dwDesiredAccess参数指定了对该进程的访问权限,这些权限可以是:PROCESS_ALL_ACCESS即所有可进行的权限;PROCESS_QUERY_INFORMATION即查看该进程信息的权限;还有很多。bInheritHandle参数指定此函数返回的句柄是否可以被继承。dwProcessId参数指定了要打开进程的ID号,可以从任务管理器中找到它们,也可以使用ToolHelp函数获取。

?

我用VB写的shellCmd类:

?

我用VB写的调用这个类的函数:

'shellCmd在ASP中调用CMD.EXE执行DOS下的EXE程序'cmdStr为由CMD.exe及DOS下的EXE文件名路径名组成的字符串'返回值为执行EXE所用的秒数Public Function myShell(cmdStr) As Single    Dim start, b, PID, ret, useTime, hProcess    Set myshellclass = New shellCmd    startTime = GetTickCount()    useTime = 0    PID = Shell(cmdStr, vbHide)     'vbNormalFocus显示窗口    Do While myshellclass.IsRunning(PID) And useTime < 3000        useTime = GetTickCount() - startTime        DoEvents    Loop    Call myshellclass.CloseProcess(PID) '若该进程在运行则关闭它    myShell = GetTickCount() - startTimeEnd Function

?

热点排行