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

发布于 2024-11-16 01:36:57 字数 238 浏览 1 评论 0原文

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

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

I'm currently using SendKeys.SendWait(text); in C#
but SendKeys sending the key global and I have to activate my application and then send it. And another problem is when I type something in my keyboard (in another app) and the SendKeys function activates (in my app) mistakes happen.

So how can I send a message to my application regardless what application is active and what I type in my keyboard?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

后eg是否自 2024-11-23 01:36:57

SendMessage()< /a> 做你想做的事。您需要像这样使用它:

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

SendMessage() does what you want. You'll need to use it like:

[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);
尴尬癌患者 2024-11-23 01:36:57

您需要在其他应用程序的窗口上获取句柄,以便您可以将其聚焦并可靠地将击键发送给它,

请查看本教程

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

You will need to get a handle on the other application's window so that you can bring it to focus and reliably send your keystrokes to it,

Have a look at this tutorial

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文