我创建了一个WPF应用程序,用于监视计算机上运行的某些进程。如果其中一个进程出错或退出,则需要自动重启该进程。我的代码通过评估流程是否仍在通过my_process.HasExited
运行来工作。
我遇到的唯一问题是我监控的其中一个进程是由第三方应用程序运行的,当此应用程序的进程出现问题时,它们会在退出之前显示错误消息。此错误消息需要Enter键击退出并允许进程完全结束。
因此,我正在寻找一种方法,在检查进程是否仍在运行时,每隔5秒向应用程序发送一次Enter键。这样做将清除错误消息并允许进程退出,以便可以重新启动它。我尝试过使用SendKeys,但意识到这个类在WPF中不可用。
是否有一种简单的方法可以从我的WPF应用程序发送按Enter键到另一个应用程序的模拟?
答案 0 :(得分:2)
不容易,但可以使用某些Windows API完成。
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);