【问题标题】:How to send an "Enter" press to another application in WPF如何向 WPF 中的另一个应用程序发送“Enter”键
【发布时间】:2015-08-06 22:44:13
【问题描述】:

我创建了一个 WPF 应用程序来监视机器上运行的某些进程。如果其中一个进程出错或退出,则需要自动重新启动该进程。我的代码通过评估进程是否仍在通过my_process.HasExited 运行来工作。

我遇到的唯一问题是我正在监视的进程之一是由第三方应用程序运行的,当此应用程序的进程出现问题时,它们会在退出前显示错误消息。此错误消息需要按 Enter 键才能退出并允许该过程完全结束。

因此,我正在寻找一种在检查进程是否仍在运行时每 5 秒向应用程序发送一次 Enter 按键的方法。这样做会清除错误消息并允许进程退出以便可以重新启动。我曾尝试使用 SendKeys,但意识到此类在 WPF 中不可用。

有没有一种简单的方法可以将按下 Enter 键的模拟从我的 WPF 应用程序发送到另一个应用程序?

【问题讨论】:

  • 您是直接启动行为不端的过程还是为您启动?
  • 看看这对你有没有帮助stackoverflow.com/questions/11572411/…
  • 它是从外部启动的,不受我控制
  • 发生错误时可以直接杀死进程。 (而不是模拟按键)

标签: c# wpf


【解决方案1】:

不容易,但可以通过一些 Windows API 来完成。

Send Message in C#

Using PostMessage/SendMessage to send keys to c# IE WebBrowser

这个想法是你得到一个窗口句柄,然后调用 SendMessage 来发送键向下和向上键。

SendMessage(Handle, WM_KEYDOWN, VK_ENTER, 0);
SendMessage(Handle, WM_KEYUP, VK_ENTER, 0);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-16
    相关资源
    最近更新 更多