向另一程序发送消息(100分)

  • 主题发起人 主题发起人 xxxx_xm
  • 开始时间 开始时间
X

xxxx_xm

Unregistered / Unconfirmed
GUEST, unregistred user!
[?]请问如何向另一程序发送消息,使其模拟按下某菜单项?
 
设hWnd是另一程序的主窗口句柄, SendMessage(hWnd, wParam, lParam)即可.[^]
 
发送信息程序<br>var <br>&nbsp; form_hw:HWND;<br>begin<br>form_hw:=FindWindow(nil,'接收程序的caption');<br>if boolean(form_hw) then<br>SendMessage(form_hw,11111,19801129,0);<br>end;<br><br>接收信息程序中定义<br>private<br>&nbsp; procedure Sel_win_Change(var msg:TMessage); message 11111;<br><br>procedure TMainForm.Sel_win_Change(var msg: TMessage);<br>begin<br>if trim(floattostr(msg.WParam))='19801129' then<br>点击菜单的过程<br>end;
 
他也没说那另一个程序也是自己写的吧,怎么加自定义消息了?
 
顺便看看我的问题<br>http://www.delphibbs.com/delphibbs/dispq.asp?lid=689930
 
模拟点击菜单,何不控制鼠标实现呢?<br>先getcursorpos()得到鼠标位置,然后setcursorpos()控制鼠标的相对位置, <br>最后在mouse_event事件中模拟点击即可!
 
我声明一下,接收消息的程序不是我写的。而如YB_unique所说的用控制鼠标实现,在其它<br>程序中如何模拟按下鼠标?请指教,谢谢!用这种方法还存在接收程序运行过程中被移动<br>位置的问题。另外,我曾用SendMessage(hwnd,WM_CHAR,Ord('aaaa'),1)向另一程序发送<br>一组键盘信息,能否用类似办法发送菜单的快捷键?但'ALT_F'之类的键盘信息如何表示?
 
谢谢YB_unique,按你指导,用mouse_event确实可模拟按下鼠标,
 
好久没上网了,派分了,虽然没得到我想要的答案。
 
多人接受答案了。
 
后退
顶部