【问题标题】:How to intercept WebBrowser control's "Choose file to Upload" window before it opens?如何在打开之前拦截 WebBrowser 控件的“选择要上传的文件”窗口?
【发布时间】:2011-08-05 21:42:12
【问题描述】:

我的应用程序必须使用 webBrowser 控件自动填写表单和上传文件。 当我调用Member("click") 时,通常的“选择要上传的文件”表单会弹出并出现在我可能同时使用的任何其他应用程序的前面。有没有办法拦截这个窗口,以便我可以在后台保持我的表单填写和文件上传?

【问题讨论】:

  • 它几乎可以肯定是一个 javascript 窗口。不会触发 NewWindow 事件的那种。所以,没有。
  • 一个类似的问题answered

标签: c# winforms file-upload webbrowser-control


【解决方案1】:

答案是您可能可以,但这可能是一个非常复杂的过程。您可以挂钩到 Windows CALLWNDPROCRET 通知链,它可以让您在 webbrowser 控件处理事件(如对话框创建)之前获取它们。我以前用它来执行诸如禁止“不受信任的证书”警告对话框之类的操作,但是除非您绝对别无选择,否则我不建议您走这条路。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多