老问题了,如何向一个菜单项发送消息,达到点击它的效果。高手请进……急~~~~~ ( 积分: 50 )

  • 主题发起人 主题发起人 镀金的乞丐
  • 开始时间 开始时间

镀金的乞丐

Unregistered / Unconfirmed
GUEST, unregistred user!
别跟我说用<br>sendkey&quot;%&quot;<br>sendkey&quot;{down}……{enter}&quot;<br>因为往往很多时候菜单不提供热键<br>也别说用spy++去查出菜单项的具体句柄,<br>然后用postmessage(hwnd,wm_command,$XXXX,0)<br>因为需要改动点击的菜单项目时,又得用spy++去监听,太麻烦<br><br>有没有别的办法,只利用程序本身去获得菜单项的句柄,然后直接给菜单项发送消息,已达到点选该菜单的效果??<br>望大虾们出来指点
 
别跟我说用<br>sendkey&quot;%&quot;<br>sendkey&quot;{down}……{enter}&quot;<br>因为往往很多时候菜单不提供热键<br>也别说用spy++去查出菜单项的具体句柄,<br>然后用postmessage(hwnd,wm_command,$XXXX,0)<br>因为需要改动点击的菜单项目时,又得用spy++去监听,太麻烦<br><br>有没有别的办法,只利用程序本身去获得菜单项的句柄,然后直接给菜单项发送消息,已达到点选该菜单的效果??<br>望大虾们出来指点
 
取得菜单句柄、id,自己用api找就行了,给你一个单击windows计算器的&quot;帮助&quot;-&gt;&quot;关于&quot;菜单的例子<br>var<br> &nbsp;wh,mh:thandle;<br> &nbsp;id:word;<br>begin<br> &nbsp;wh:=findwindow(nil,'计算器');<br> &nbsp;if wh&lt;&gt;0 then<br> &nbsp;begin<br> &nbsp; &nbsp;mh:=getmenu(wh);<br> &nbsp; &nbsp;mh:=getsubmenu(mh,2); //取得帮助菜单句柄<br> &nbsp; &nbsp;id:=getmenuitemid(mh,2); //取得关于菜单的ID<br> &nbsp; &nbsp;postmessage(wh,wm_command,MAKEWPARAM(id,0),0);<br> &nbsp;end;<br>end;
 
不错~~~~接受答案了<br>感谢迷糊兄又一次搭救我于危难之中<br>请接分
 
后退
顶部