读书人

用OpenProcess、GetExitCodeProcess跟

发布时间: 2012-12-22 12:05:06 作者: rapoo

用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

?

读书人网 >编程

热点推荐