如何拦截浏览器控件's“选择要上传的文件”&;打开之前的窗口

本文关键字:文件 窗口 控件 浏览器 何拦截 选择 | 更新日期: 2023-09-27 18:04:44

我的应用程序必须使用webBrowser控件自动填写表单和上传文件。当我调用okemember("点击")时,通常的"选择文件上传"表单会弹出,并出现在我可能同时使用的任何其他应用程序的前面。有没有办法拦截这个窗口,这样我就可以在后台进行表单填写和文件上传了?

如何拦截浏览器控件's“选择要上传的文件”&;打开之前的窗口

答案是您可能可以,但是这可能是一个非常复杂的过程。你可以钩入windows CALLWNDPROCRET通知链,它可以让你在事件被web浏览器控件处理之前获得事件(比如对话框创建)。我以前用过这种方法来做一些事情,比如抑制"不受信任的证书"警告对话框,但是我不建议你走这条路,除非你绝对没有其他选择。

由于安全原因,IE不允许以编程方式设置文件上传。(事实上,你甚至不能使用SendKeys,因为微软也关闭了这个漏洞。)

然而,您可以通过轻松地将文件添加到HTTP头中来完成您想要做的事情。有一个很好的教程可以帮助你做到这一点:

http://www.codeproject.com/KB/aspnet/set-webbrowser-file-input.aspx