问题1: private void button1_Click(object sender, System.EventArgs e)
{
IntPtr hwnd_win ;
IntPtr hwnd_button ;
hwnd_win = FindWindow("WindowsForms10.Window.8.app3","CallCenter");
MessageBox.Show(hwnd_win.ToString());
hwnd_button = FindWindowEx(hwnd_win ,new IntPtr(0) ,"WindowsForms10.BUTTON.app3","button2");
MessageBox.Show(hwnd_button.ToString());
const int BM_CLICK = 0x00F5;
Message msg = Message.Create(hwnd_button ,BM_CLICK ,new IntPtr(0),new IntPtr(0));
PostMessage(msg.HWnd ,msg.Msg ,msg.WParam ,msg.LParam);
}
以上这段代码是运行CallCenter这个FORM里的button2里的事件,运行通过并能调用
但是如果这里将button2改成bt_CallBack(另外一个BUTTON)后,就不能运行bt_CallBack里面的代码!!
button2和bt_CallBack两个按钮唯一的区别是button2是直接放在FORM上,而bt_CallBack放在FORM上的TabControl上
请问这个问题怎么解决??
问题2:如果消息接收放如果最小化的时候就不能接收到该消息,不知道这个问题如何解决?
问题点数:100、回复次数:6Top
第一个问题,你看看http://blog.csdn.net/stdotleo/archive/2004/08/14/74290.aspx
问题2:如果消息接收放如果最小化的时候就不能接收到该消息,不知道这个问题如何解决?
因为你在最小化后,你的程序的Handle就变了,再最大化的时候又变了,所以你发的消息程序就收不到了
Top
楼上说的不错……我在调用findwindows也遇到过这种问题……Top
你随时去获得你的应用程序的句柄,然后把它发给另外一个程序Top
你可以动态的改句柄