可能重复:Directly sending keystrokes to another process via hooking
如果我的问题语气有点不好,我想道歉。我被困住了。 好的,我正在制作一个程序,将数据从 WPF 应用程序传输到 VB 6 应用程序和网页。根据配置,它将调用一个过程来发布数据。我已经完成了 VB 6 方面的工作,但是网页出现了一个大问题,因为:
- 该过程必须适用于所有已知的浏览器。
- 不允许我将数据作为网络请求发送。
- 我无法控制要使用的网站。
- 我也不允许使用任何第三方软件
我已经尝试过以下方法:
- 使用制表键和字符键的 keyup 和 keydown 发送消息
- Sendmessage with postmessage 用于要发送的字符串
- 上述的邮寄版本
- 用于将数据作为 HTML 文档发送的 MSHTML
- SendKeys(虽然还没有深入探索)
这是发送消息的代码(最接近我所有的尝试)
IntPtr window = User32_Methods.FindWindow(null, "Test Site");
if(window!=IntPtr.Zero)
{
MessageBox.Show("asdasd");
User32_Methods.SendMessage(window, Send_Message_Constants.WM_LBUTTONDOWN, IntPtr.Zero, IntPtr.Zero);
User32_Methods.SendMessage(window, Send_Message_Constants.WM_LBUTTONUP, IntPtr.Zero, IntPtr.Zero);
for (int count = 0; count < 15;count++)
{
User32_Methods.PostMessage(window, Send_Message_Constants.WM_KEYDOWN, (IntPtr) Send_Message_Constants.VK_TAB, IntPtr.Zero);
User32_Methods.PostMessage(window, Send_Message_Constants.WM_KEYUP, (IntPtr)Send_Message_Constants.VK_TAB, IntPtr.Zero);
foreach(char a in "adasdasdasd")
{
User32_Methods.PostMessage(window, Send_Message_Constants.WM_KEYDOWN, (IntPtr)Send_Message_Constants.VK_A, IntPtr.Zero);
User32_Methods.PostMessage(window, Send_Message_Constants.WM_KEYUP, (IntPtr)Send_Message_Constants.VK_A, IntPtr.Zero);
}
}
}
我想问问你们,因为你们解决了我在这里遇到的大部分问题。
请您参考如下方法:
我知道这可能不是要走的路,但我看到您将尝试使用发送 key ,所以也许您可以根据您的逻辑添加一些您自己的 .js,然后执行它。由于发送键类似于将数据输入表单/单击按钮/或其他方式,因此 js 例程可能会帮助您....
