如何在我的应用程序中发送键盘键?

时间:2011-06-18 07:37:46

标签: c# .net keyboard

我目前在C#中使用SendKeys.SendWait(text);SendKeys发送密钥全局,我必须激活我的应用程序,然后发送它。另一个问题是当我在键盘上输入内容(在另一个应用程序中)并且SendKeys功能激活(在我的应用程序中)时会发生错误。

那么无论应用程序处于活动状态以及键盘输入内容,我如何向应用程序发送消息?

2 个答案:

答案 0 :(得分:2)

SendMessage()做你想要的。您需要像以下一样使用它:

[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);

const UInt32 WM_CHAR = 0x0102;
const int VK_Q = 0x51; // taken from http://msdn.microsoft.com/en-us/library/dd375731(v=vs.85).aspx

SendMessage(handleToTheInputForm, WM_CHAR, VK_Q, 1);

答案 1 :(得分:1)

您需要在另一个应用程序的窗口中获取handle,以便您可以将其聚焦并可靠地将击键发送给它,

看一下本教程

http://www.codeproject.com/KB/cs/SendKeys.aspx