用SendMassage发送组合键,比如Alt+E?

解决方案 »

  1.   

    http://www.cnblogs.com/johnsonton/articles/2331430.html
      

  2.   

    嗯嗯。是C#的。
                WinModule.SendMessage(hWnd, WM_KEYDOWN, 18, 0);//ALt按下
                WinModule.SendMessage(hWnd, WM_KEYDOWN, 69, 0);//E按下
               WinModule.SendMessage(hWnd, WM_KEYUP, 69, 0);//E释放
                WinModule.SendMessage(hWnd, WM_KEYUP, 18, 0);//ALT释放
      

  3.   

    接收处的代码能修改吗,如果可以的话发个自定义消息过去,接收了后当作 Alt+E 处理
      

  4.   

    [Quote=引用 7 楼  的回复:]
    当做Alt+E处理?怎么修改呢。。
      

  5.   

    // 发和收都定义个自定义消息
    const int WM_CUSTOM = 0x0410;// 发送
    SendMessage(接收窗体的句柄, WM_CUSTOM, IntPtr.Zero, IntPtr.Zero);// 在接收的窗体里重写 WndProc 方法
    protected override void WndProc(ref Message m)
    {
        switch (m.Msg)
        {
            case WM_CUSTOM:
                // 在这执行原先收到 Alt+E 所要执行的操作
                break;
            default:
                break;
        }
        base.WndProc(ref m);
    }
      

  6.   

    [Quote=引用 9 楼  的回复:]
    貌似没什么效果,也许是我不理解吧。我用SendMessage能发送字母键。但是ALT键和CTRl键发送不了。用WM_SYSKEYDOWN也没效果
    这里有人说得了。但我试了下没得。帮我看看耶。。http://www.cnblogs.com/willen/archive/2008/10/22/1316523.html
      

  7.   

    我试了也没效果,Alt+E 你那个窗体接收到了 Alt+E 要干什么? 可以把那部分代码提取出来单独处理
      

  8.   

    如果真不能发送 那么就一定要用 SendMessage了?
    你也可以用RegisterHotKey注册一个全局热键 处理WM_HOTKEY消息啊?
      

  9.   

    能单独提取字母键,但是ALT好像不懂怎么实现
      

  10.   

    我查了一下,RegisterHotKey能实现吧,回来再弄一下看。。