shellexe开的程序如何判断是否被隐藏? ( 积分: 50 )

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

carolson2

Unregistered / Unconfirmed
GUEST, unregistred user!
shelle..&nbsp;or&nbsp;winexec&nbsp;执行程序A时候设置为&nbsp;隐藏。<br><br>现在另外一个程序希望获得进程A&nbsp;是否被隐藏,如何操作?&nbsp;(A有多个副本,有的隐藏有的没隐藏)<br><br>谢谢
 
用process32first、process32next先找出所有程序A副本的进程ID<br>用EnumWindows列出系统所有窗口,然后在其回调函数里用GetWindowThreadProcessId判断是否为程序A副本的窗体,用IsWindowVisible判断窗体是否被隐藏<br>自己维护一个列表,一个进程包含多个窗体,如果被隐藏,所有窗体IsWindowVisible都为false<br>否则没有
 
补充一下:<br>隐藏操作是简单的:&nbsp;&nbsp;winexec('程序',SW_HIDE);<br><br>我的思路是:<br>获得所有进程,判断a:&nbsp;是否为定义的程序,&nbsp;b:是否为隐藏的。<br>满足a,b就操作。<br><br>正读&nbsp;IsWindowVisible&nbsp;&nbsp;:)
 
一个delphi程序进程有多个窗体,其中2个是肯定隐藏的,一个是application窗体,另一个是个对话框,所以你要判断该进程的所有窗体是否都为隐藏
 
请问前辈有无这样一个简单的api操作:<br>NeedHandle:=&nbsp;这个操作(...'程序'....&nbsp;HIDE)<br><br>这样直接就得到handle&nbsp;了:)&nbsp;&nbsp;&nbsp;比如&nbsp;winexec&nbsp;执行某程序时候返回一个handle&nbsp;?
 
不一定啊......看你要用的API的说明了,有的是进程handle,有的是窗口handle
 
终于找到答案了,散分:)
 
接受答案了.
 
后退
顶部