【发布时间】:2015-08-18 13:47:12
【问题描述】:
我正在尝试使用以下代码向外部应用程序发送 Enter 按键。我已经在 WPF 中对这个主题进行了大量研究,但还没有让它发挥作用。谁能明白为什么这可能不起作用?
[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int wMsg, IntPtr wParam, IntPtr lParam);
const int WM_KEYDOWN = 0x0100;
const int WM_KEYUP = 0x0101;
const int VK_ENTER = 0x0D;
SendMessage((IntPtr)myProcess.MainWindowHandle, WM_KEYDOWN, (IntPtr)VK_ENTER, IntPtr.Zero);
SendMessage((IntPtr)myProcess.MainWindowHandle, WM_KEYUP, (IntPtr)VK_ENTER, IntPtr.Zero);
注意:
-我无权访问外部应用程序的代码,因为它不是我的。
-SendKeys 在 WPF 中不起作用。
【问题讨论】:
-
好吧,我不知道 wpf,但我认为您需要为其他应用程序实现接收消息方法,但由于它不是您的,您不能......我想知道这是否有解决方案跨度>
-
您发布的代码与 WPF 完全无关,如果您在 WinForms 应用程序中调用它,代码是否有效,或者您为什么明确提及 WPF。如果它在 WinForms 中也不起作用,请您删除标签 / 和标题。
-
您是否以管理员身份午餐应用程序?如果没有尝试这样做
-
我在标签中添加了 WPF,因为当我没有特别提到 WPF 时,我经常得到只能在 WinForms 等其他程序中实现的答案。 SendKeys 就是一个很好的例子。
-
通过
SendMessage伪造输入是不可靠的,原因有很多。如果您需要自动化 UI,请改用 UI Automation。