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

C# 如何在我的应用程序中发送键盘键?,c#,.net,keyboard,C#,.net,Keyboard,我目前正在使用SendKeys.SendWait(text)在C中# 但是SendKeys发送全局密钥,我必须激活我的应用程序,然后发送它。另一个问题是,当我在键盘上(在另一个应用程序中)键入内容时,SendKeys功能激活(在我的应用程序中)会发生错误 那么,无论哪个应用程序处于活动状态,我在键盘上键入什么,我如何向我的应用程序发送消息呢?您需要在另一个应用程序的窗口上获得一个句柄,这样您就可以使它聚焦并可靠地向它发送击键 请看一下本教程 做你想做的事。您需要像这样使用它: [DllImpor

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


那么,无论哪个应用程序处于活动状态,我在键盘上键入什么,我如何向我的应用程序发送消息呢?

您需要在另一个应用程序的窗口上获得一个
句柄,这样您就可以使它聚焦并可靠地向它发送击键

请看一下本教程

做你想做的事。您需要像这样使用它:

[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);

这个应用程序的目的是什么,你能提供一些你已经有的相关代码吗?它是一个机器人程序-使用webbrowser控件。我想输入消息并发送它。我不能改变输入表单的值。。。所以我必须发送应用程序的密钥。关于您想要的代码-没有什么需要显示的。我只是使用上面的功能发送密钥,就是这样,但我想更改该功能以符合我的要求。是的,我现在这样做了,但我说错误再次发生。我不希望我的应用程序依赖于什么应用程序处于活动状态。。。