当前位置:C++技术网 > 资讯 > 使用ID获得进程句柄的方法

使用ID获得进程句柄的方法

更新时间:2015-06-23 20:40:40浏览次数:1+次

    通过OpenProcess函数可以打开一个已运行的进程,OpenProcess第一个参数是设置打开进程的访问权限,如果可以,我们一般使用PROCESS_ALL_ACCESS这个标志来使用全部权限打开进程,得到进程的句柄。其他各种权限,请查阅MSDN详细了解。不同的权限,可执行的操作不一样。提醒一句,有时候使用全部权限可能执行失败,和系统版本有关,可以查阅MSDN的说明。
    第二个参数是可继承状态标志。我们打开了进程,得到进程句柄,我们就可以操作这个进程的东西了,包括进程拥有的各种资源,以及管理进程本身比如关闭进程、挂起进程等。打开进程后,如果我们再创建新进程,需要使用打开的进程的东西,就需要从这个打开的进程里继承。这个状态可继承状态标志就需要设置为TRUE来使用继承,如果只是强制关闭打开的这个进程,则不需要继承任何东西,设置为FALSE即可。
    最后一个参数就是DWORD的类型的进程ID号。DWORD实际上是无符号的long类型,占有四字节。
    这个ID的来源,可以手动查看。方法是:
    在系统的任务管理器中的“进程”标签页中,单击菜单“查看”->“选择列”->勾选"PID(进程标识符)"后确定,即可在进程标签页中显示出来。
    不过,我们还可以通过API函数EnumProcesses来获取所有的进程的ID,具体使用方法查询本站相关文章或者MSDN。
    最终OpenProcess会返回一个成功打开的进程句柄。有了这个句柄,我们就可以操作这个进程了。