PostMessage不适用于Windows 8

时间:2014-02-15 08:22:47

标签: c# winforms postmessage

所以,当我无法弄清楚为什么我的PostMessage不起作用时。这就是我所拥有的。

[DllImport("user32.dll")]
        static extern bool PostMessage(IntPtr hWnd, UInt32 Msg, int wParam, int lParam);

private void Send_Click(object sender, EventArgs e)
        {
            uint WM_KEYDOWN = 0x0100;
            Process p = Process.GetProcessesByName("notepad").FirstOrDefault();
            IntPtr h = p.MainWindowHandle;
            PostMessage(h,
               WM_KEYDOWN,
               (int)Keys.D, 0);
        }

以上代码根本不起作用。奇怪的是,虽然下面的代码确实如此。为什么邮寄消息不起作用?如果有任何帮助,我在Windows 8上。

[DllImport("user32.dll")]
        static extern int SetForegroundWindow(IntPtr point);

private void SendUp_Click(object sender, EventArgs e)
        {
            Process p = Process.GetProcessesByName("notepad").FirstOrDefault();

            if (p != null)
            {
                IntPtr h = p.MainWindowHandle;
                SetForegroundWindow(h);

                    SendKeys.Send("D");
            }
        }

0 个答案:

没有答案