有没有办法阻止从组件网络浏览器(C#)访问的网站上传文件(任何文件)?我一直在尝试几种方法,但没有任何效果...
问问题
703 次
2 回答
0
我终于解决了这个问题!
解决方案是:隐藏对话框!我使用对象 id(窗口 id)来查找对话框。这是“阻止”任何对话框的唯一方法!
见下面的代码:
// P/Invoke declarations
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string id, string caption);
[DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp);
public void Execute()
{
IntPtr hWnd = FindWindow("#32770", null);
if (!hWnd.Equals(IntPtr.Zero))
{
SendMessage(hWnd, 0x0010, IntPtr.Zero, IntPtr.Zero);
}
}
我希望这个解决方案可以帮助其他用户!
于 2013-04-29T19:08:47.370 回答
0
我不知道有什么简单或困难的方法来实现这一点,因为在单击 html 输入文件字段时,MSHTML.dll 会自动调用 openFileDialog。没有任何接口、方法或属性可以以编程方式覆盖或阻止对话框打开。
我找到了一种我认为适用于这种情况的方法。您需要做的是通过“WebBrowser.Navigating”事件识别每个包含“Content-Type: multipart/form-data”的 HTTP 标头,因为每次文件即将从本地计算机流式传输到服务器。然后您可以立即取消数据流。
于 2013-04-24T11:59:16.397 回答