所以,当我无法弄清楚为什么我的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");
}
}