尝试在任何Web浏览器上将数据从WPF应用程序发送到Web页面

时间:2012-10-22 10:53:37

标签: c# asp.net wpf vb6 pinvoke

可能重复:Directly sending keystrokes to another process via hooking

如果我的问题中的语气有点糟糕,我想道歉。我被卡住了。 好的,我正在努力制作一个程序,将数据从WPF应用程序传输到VB 6应用程序和网页。根据配置,它将调用过程来发布数据。我已经完成了VB 6的一面,但是网页出现了一个很大的问题:

  • 该程序必须适用于所有已知的浏览器。
  • 我不允许将数据作为网络请求发送。
  • 我无法控制要使用的网站。
  • 我也不允许使用任何第三方软件

我已经尝试了以下内容:

  • 使用keyup和keydown选项卡和字符键发送消息
  • sendmessage with postmessage for the string to be
  • 以上的消息后版本
  • 用于将数据作为HTML文档发送的MSHTML
  • SendKeys(虽然尚未大量探讨)

这是sendmessage的代码(最接近我的所有尝试)

   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);
                }
            }
        }

我想问你们堆栈,因为你解决了我在这里遇到问题的大部分问题。

1 个答案:

答案 0 :(得分:0)

我知道这可能不是可行的方法,但是我知道你会尝试使用发送键,所以也许你可以用自己的逻辑添加一些.js,然后执行它。由于发送密钥就像是一种将数据输入到表单/单击按钮/或其他内容的方式,因此js例程可能对您有帮助....