代码之家  ›  专栏  ›  技术社区  ›  Jobi Joy

将密钥发送到WPF浏览器控件

  •  1
  • Jobi Joy  · 技术社区  · 16 年前

    我可以通过编程将[userid]tab[password]carriage return发送到一个WebBrowser控件,该控件具有userid、密码和登录按钮。我想在我的应用程序中使用我自己的虚拟键盘。这里有小窍门吗?

    2 回复  |  直到 12 年前
        1
  •  2
  •   michael noonan    16 年前

    很抱歉回答迟了,但我刚刚完成了一个类似的项目,作为工作的一部分,我正在向codeplex公开采购两个项目。

    第一个是 Windows Input Simulator 这是一个简单的.NET包装,围绕用C编写的win32 sendinput。

    第二个是一个非常可定制的屏幕键盘或触摸屏键盘控制和工具包称为wpfkb,并将作为一个初步版本明天提供。希望这些对您或任何其他参与项目的人都有帮助。

        2
  •  1
  •   AndyM    16 年前

    我最近不得不通过一个WPF浏览器控件实现自动身份验证,我研究了模拟击键。我不需要一个完整的虚拟键盘,这样就可以通过 IHTMLDocument2 最终成为了最好的方法,但我在做决定之前研究了击键自动化,并找到了一些选项。

    1. 可以在控件上引发适当的路由事件,如中所述。 Simulating basic keyboard events Simulating text input . 我不知道这种方法有什么具体的问题,但我选择反对它,仅仅是因为我不喜欢模拟输入而不看clr如何处理实际的输入,而且至少在不提高整个生命周期(previewkeydown、keydown、previewkeydup、keydup)的情况下,我对意想不到的结果持谨慎态度。

    2. 看一看 WOSK 关于CODULTEX。这是如何调用win32的一个很好的例子 keybd_event SendInput 通过以下方式生成低级输入消息的函数: Managed Windows API 模拟输入。有一些不必要的绒毛(例如透明)和一些奇怪的WPF用法,例如使用 CommandParameter 用一个 Click 事件而不是 Command 在按钮上,但一般的方法是健全的,它是相当完整的。

    3. 您还可以调用Jeroen提到的Windows屏幕键盘。我没有尝试这个,因为我不需要虚拟键盘,但是如果您无论如何都要调用win32,您也可以按照 沃斯克 按照您想要的方式建模和构建UI。