我有一个带有网络浏览器的小应用程序。在这个网络浏览器中,一个网页加载了一个 JAVA 小程序。此 java 小程序具有输入提示,如图像中所示
我需要能够通过 vb.net 按钮在此输入对话框中键入文本。但我无法以编程方式将焦点设置在此输入上。
任何帮助表示赞赏!
有几种方法可以通过使用钩子来做到这一点。第一个是使用 SetWindowsHookEx 创建本地挂钩
SetWindowsHookEx(WH_CALLWNDPROCRET, NativeMethods.HookProc,
IntPtr.Zero, (uint)AppDomain.GetCurrentThreadId());
并收听 WM_INITDIALOG windows 消息,然后找到输入文本框并插入所需的文本。抑制托管 WebBrowser 控件对话框中的示例代码
第二种方法是使用 SetWinEventHook 函数和 hook EVENT_SYSTEM_DIALOGSTART 事件,其余处理是一样的。您可以在https://github.com/jsulak/Switcheroo/blob/master/ManagedWinapi/AccessibleObjectListener.cs中找到示例代码