将击键发送到另一个应用程序C#

时间:2009-04-09 02:00:42

标签: c# input

我需要自动FileMon.exe启动过滤器,保存它生成的日志,然后退出。

我的解决方案是编写一个可以完成所有这些操作的辅助应用程序。哪个已经开始使用指定的过滤器并终止进程,但我仍然需要它来保存日志。你觉得发送应用程序击键来保存日志会很愚蠢吗?例如,我会发送一个Alt + F,Alt + S,输入文件路径,输入。

如何将上述键击发送到另一个在C#中运行的进程?

6 个答案:

答案 0 :(得分:1)

据我所知,您必须调用一些本机API:

-FindWindow找到你想要使用的父窗口

-FindWindowEx找到你要发送消息的真实窗口

-SendMessage将键击发送到那些窗口

这些API的详细信息,请参阅MSDN:)

答案 1 :(得分:1)

您可以使用Windows.Forms.SendKeys向活动应用程序发送击键。

答案 2 :(得分:1)

感谢所有答案和帮助人员...我实际上是要使用Win32 :: GuiTest编写和调用perl脚本。

答案 3 :(得分:0)

这可能是一个不尽如人意的结局。您应该查看并查看应用程序(或其依赖的DLL之一)是否公开了正确的API调用以执行您要执行的操作。如果你不得不通过击键来做,你可以看看像MacorMaker这样的宏程序。

答案 4 :(得分:0)

您可以在www.codeplex.com/wasp上使用powershell和windows automation cmdlet来执行此操作。

-Oisin

答案 5 :(得分:0)

使用像AHK (Auto HotKey)这样的东西,它是一种可以编译成EXE的简单语言,专为自动键盘和鼠标而设计。

如果需要,IRC频道和论坛也总是有人愿意提供帮助。