两个应用程序之间发消息时关于FindWindowEx函数的问题!!

两个应用程序之间发消息时关于FindWindowEx函数的问题!!

楼主wangxian11(悠闲的海豚) 2004-08-24 16:17:24 在 .NET技术 / C# 提问

问题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

1 楼stdotleo(大雨仔|M$ MVP)回复于 2004-08-24 19:06:46 得分 50

第一个问题,你看看http://blog.csdn.net/stdotleo/archive/2004/08/14/74290.aspx  
   
  问题2:如果消息接收放如果最小化的时候就不能接收到该消息,不知道这个问题如何解决?  
  因为你在最小化后,你的程序的Handle就变了,再最大化的时候又变了,所以你发的消息程序就收不到了  
  Top

2 楼werdcd(弟大物勃)回复于 2004-08-24 22:50:10 得分 30

楼上说的不错……我在调用findwindows也遇到过这种问题……Top

3 楼werdcd(弟大物勃)回复于 2004-08-24 22:51:24 得分 0

你随时去获得你的应用程序的句柄,然后把它发给另外一个程序Top

4 楼stdotleo(大雨仔|M$ MVP)回复于 2004-08-28 04:25:28 得分 20

你可以动态的改句柄 

你可能感兴趣的:(两个应用程序之间发消息时关于FindWindowEx函数的问题!!)