程序A: 在form_activate()中,调用this.hide()隐藏窗体。--
 现在需要在另一个程序B中,给这个隐藏的A发送消息--
 请问C#如何实现?  xiexie...

解决方案 »

  1.   

    a
    //找到要发送消息的程序的句柄
    int hwnd = FindWindow("IEFrame", "Google - Microsoft Internet Explorer");
    //发送消息
    SendMessage(hwnd, 0x0111, 0x0000a220, 0);b
                                 程序隐藏了还是可以在进程中找到的
                                //创建新的 Process 组件的数组
    Process[] myProcesses = Process.GetProcesses();

    foreach(Process myProcess in myProcesses)
    {
    Console.WriteLine(myProcess.ProcessName);
    }
                           然后获得句柄,发送信息。
      

  2.   

    在a程序中使用:
    protected override void WndProc(ref Message m )
    来接收b发送的信息。没测试过这个方法是不是可以 !protected override void WndProc(ref Message m )
    {
    const int WM_HOTKEY = 0x0312; 

    switch(m.Msg)
    {
    case WM_HOTKEY:
    {
                                //自己需要的代码加在这里
    }

    base.WndProc(ref m );
    }
      

  3.   

    当一个窗体Hide的时候,它的句柄是会变的
      

  4.   

    你可以在窗体Hide后激活一个事件,让这个事件把新的句柄传给要发给它消息的窗体,
      

  5.   

    通过 myProcess.Handle 或者 myProcess.MainwinHandle 都不能正确发送消息....
    --
      Hide()后,    我应该使用哪个其他句柄呢?
      

  6.   


      hehe~~~   -- 经过摸索自己搞定了。
      

  7.   

    这个思路比较正确:
    ----
    你可以在窗体Hide后激活一个事件,让这个事件把新的句柄传给要发给它消息的窗体,
    ----