c# SendKey到隐藏窗口

发布于 2024-08-03 16:12:19 字数 213 浏览 2 评论 0原文

我有一个隐藏的窗口,我想向它发送一个按键。我想要实现的一个示例是一个应用程序,它将按 F5 键发送到不是活动窗口的网络浏览器。当收到 F5 按键时,Web 浏览器会知道刷新当前页面。

我还想向应用程序发送组合键,例如 Ctrl+S。这种用法的一个示例是定时自动保存功能,用于不具有自动保存功能的应用程序。这将使我不必记住每 5 分钟保存一次。

C# 是我的技术,这听起来现实吗?

I have a window which is hidden and I would like to send a keypress to it. An example of what I'm trying to achieve is an app that will send the key F5 to a web browser which wasn't the active window. The web browser would know to refresh the current page when the F5 keystroke is received.

I would also like to send a combination of keys to an application, e.g. Ctrl+S. One example of this usage could be a timed auto-save feature to use with applications which don't have autosave. This would spare me having to remember to save every 5 mins.

C# is my technology, does this sound realistic?

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

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

发布评论

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

评论(3

小忆控 2024-08-10 16:12:19

这篇 CodeProject 文章展示了如何将击键发送到外部应用程序(使用 C# 源代码)代码)。

This CodeProject article shows how to send keystrokes to an external application (with C# source code).

你的他你的她 2024-08-10 16:12:19

您可以使用 WinApi 来实现此目的。 SendMessagePostMessage 方法将所需的消息发送到您的应用程序。

以下是 SendMessage 的 C# 定义

[DllImport("user32.dll")]
public static extern int SendMessage(
    int  hWnd,     // handle to destination window
    uint Msg,      // message
    long wParam,   // first message parameter
    long lParam    // second message parameter
  );

,并定义要发送的消息,如下所示:

public const uint %WM_MESSAGE_HERE% = %value%; 

检查 PInvoke - 包含 .NET WinApi 方法定义的优秀资源

You can use WinApi for this purpose. SendMessage or PostMessage method to send desired message to your application.

Here's C# definition of SendMessage

[DllImport("user32.dll")]
public static extern int SendMessage(
    int  hWnd,     // handle to destination window
    uint Msg,      // message
    long wParam,   // first message parameter
    long lParam    // second message parameter
  );

and define the message that you want to send like:

public const uint %WM_MESSAGE_HERE% = %value%; 

Check PInvoke - great resource containing WinApi method definitions for .NET

z祗昰~ 2024-08-10 16:12:19

这应该是可能的,查看 www.pinvoke.net 并搜索 sendinput,该页面应该告诉您需要知道的一切,以及如何找到窗口(查找 findwindow

This should be possible, look at www.pinvoke.net and search for sendinput, that page should tell you everything you need to know, also how to find the window (look for findwindow)

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