Skip to main content
 首页 » 编程设计

c#之尝试将数据从 WPF 应用程序发送到任何 Web 浏览器上的网页

2024年01月01日50txw1958

可能重复: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 例程可能会帮助您....