TerminateProcess和OpenProcess的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 ckylixj
  • 开始时间 开始时间
C

ckylixj

Unregistered / Unconfirmed
GUEST, unregistred user!
我想通过进程的PID号结束一个应用程序代码如下:<br>var<br> &nbsp;FProcessEntry32: TProcessEntry32;<br>.....<br>TerminateProcess(OpenProcess(PROCESS_ALL_ACCESS,True,FProcessEntry32.th32ProcessID), 0);<br><br>在使用过程中一直很正常,但是后来发现有一个程序(不是系统的服务程序,可以通过“windows 任务管理器”的“结束进程”来关闭)无法关闭,经过检查发现,OpenProcess(PROCESS_ALL_ACCESS,True,FProcessEntry32.th32ProcessID)的返回值总是0,我试了TerminateProcess(OpenProcess(PROCESS_TERMINATE,True,FProcessEntry32.th32ProcessID), 0)也不可以;不知道为什么?<br><br>不知道大家有没有遇到过这样的情况?<br><br>不知道有没有直接通过“进程的PID”来结束一个应用程序的函数?
 
我想通过进程的PID号结束一个应用程序代码如下:<br>var<br> &nbsp;FProcessEntry32: TProcessEntry32;<br>.....<br>TerminateProcess(OpenProcess(PROCESS_ALL_ACCESS,True,FProcessEntry32.th32ProcessID), 0);<br><br>在使用过程中一直很正常,但是后来发现有一个程序(不是系统的服务程序,可以通过“windows 任务管理器”的“结束进程”来关闭)无法关闭,经过检查发现,OpenProcess(PROCESS_ALL_ACCESS,True,FProcessEntry32.th32ProcessID)的返回值总是0,我试了TerminateProcess(OpenProcess(PROCESS_TERMINATE,True,FProcessEntry32.th32ProcessID), 0)也不可以;不知道为什么?<br><br>不知道大家有没有遇到过这样的情况?<br><br>不知道有没有直接通过“进程的PID”来结束一个应用程序的函数?
 
&gt;&gt;&gt;&gt; OpenProcess()的返回值总是0<br>可能它Hook了这个API来保护自己!
 
同意楼上,不过你用GetLastError返回值是0吗
 
谢谢大家,是权限的问题。
 
后退
顶部