获取窗口句柄(100分)

  • 主题发起人 主题发起人 yuejun
  • 开始时间 开始时间
Y

yuejun

Unregistered / Unconfirmed
GUEST, unregistred user!
最终是实现向应用程序A发送消息.<br>但程序A的类名在每次重新启动后都会变化,当然标题也是会变化的, 所以不能用FindWindow 查找获得.<br><br>我想了一种办法,获取该程序的进程句柄, 但找到了进程句柄又不知道如何获取程序主窗口句柄.<br><br>var<br> &nbsp;lp:tprocessentry32;<br> &nbsp;shandle:thandle;<br> &nbsp;hh,AProcHandle:THandle;<br> &nbsp;found:boolean;<br>begin<br> &nbsp;result := 0;<br> &nbsp;hh := 0;<br> &nbsp;AProcHandle := 0;<br> &nbsp;shandle:=createtoolhelp32snapshot(TH32CS_SNAPALL,0);<br> &nbsp;lp.dwSize := sizeof(lp);<br> &nbsp;found:=process32first(shandle,lp);<br> &nbsp;while found do<br> &nbsp;begin<br> &nbsp; &nbsp;if uppercase(extractfilename(lp.szExeFile))='A.EXE' then<br> &nbsp; &nbsp;begin<br><br> &nbsp; &nbsp; &nbsp;AProcHandle:=OpenProcess(PROCESS_ALL_ACCESS,false,lp.th32ProcessID);<br> &nbsp; &nbsp; &nbsp; &nbsp;//上一步获取的是进程序句柄<br> &nbsp; &nbsp; &nbsp;break;<br> &nbsp; &nbsp;end;<br> &nbsp; &nbsp;found:=process32next(sshandle,lppe);<br> &nbsp;end;<br><br>//?该如何通过 AProcHandle 获取窗口句柄? <br><br>end;<br><br><br>//或者还有其它办法吗? 谢谢了
 
编程思想是越简单越好 类名变总有其他不变的 即使其他变了 总有其他的其他没有变 FindWindow 强大着呢 呵呵<br><br>小时候玩走迷宫的游戏 书上说 迷宫千变万化 但是你只要摸着墙 顺着走下去 就能够走到终点
 
变的用nil,不变的用固定的
 
改用类名<br>或者<br>EnumWindows
 
EnumWindows &nbsp;比较保险点
 
用个么事情findwindow.这种垃圾函数,用它必须知道窗体的名称.象QQ2006它是没有窗体名称的.那只是图片.最好是用列举进程,然后取进程id.
 
通过进程ID实现吧
 
后退
顶部