开始下载事件 Internet Explorer 插件
Begin download event internet explorer addon
在我的 Internet Explorer 插件中,我想检测用户何时开始下载文件,我有 FileDownload 事件,但它不会在用户下载文件时触发,但在导航时触发。
为了展示场景,我创建了一个小型控制台应用程序(如果您想在计算机上测试它):
- 添加对
SHDocVw
dll 的引用(位于 C:\Windows\System32
)
- 使用以下代码创建控制台应用程序
- 按照我在下面写的那样,让您的应用程序与 Internet Explorer 交互。
代码:
static void Main(string[] args)
{
SHDocVw.InternetExplorer IE = new SHDocVw.InternetExplorer();
object Empty = 0;
object URL = "http://www.orimi.com/pdf-test.pdf";
IE.BeforeNavigate2 += WebBrowser_BeforeNavigate21;
IE.FileDownload += IE_FileDownload;
IE.Visible = true;
Thread.Sleep(60000);
IE.Quit();
}
public void OnBeforeNavigate2(object sender, ref object URL,
ref object Flags, ref object Target,
ref object PostData, ref object Headers,
ref bool Cancel)
{
Console.WriteLine("BeforeNavigate2 fired!");
}
private static void IE_FileDownload(bool ActiveDocument, ref bool Cancel)
{
Console.WriteLine($"{ActiveDocument} {DateTime.Now}");
Cancel = true;
}
启用 IE 与应用交互:
1.1 在inernet explorer中打开"Internet Options"
1.2 取消选中 "Advance" 选项卡
下标记的复选框
可以通过 BeforeNavigate2 事件完成,例如:
SHDocVw.InternetExplorer IE = new SHDocVw.InternetExplorer();
IE.BeforeNavigate2 += IE_BeforeNavigate2;
当用户下载文件时调用以下方法:
static void IE_BeforeNavigate2(object pDisp, ref object URL,
ref object Flags, ref object TargetFrameName, ref object PostData,
ref object Headers, ref bool Cancel)
{
Console.WriteLine("Event: IE_BeforeNavigate2");
}
在我的 Internet Explorer 插件中,我想检测用户何时开始下载文件,我有 FileDownload 事件,但它不会在用户下载文件时触发,但在导航时触发。
为了展示场景,我创建了一个小型控制台应用程序(如果您想在计算机上测试它):
- 添加对
SHDocVw
dll 的引用(位于C:\Windows\System32
) - 使用以下代码创建控制台应用程序
- 按照我在下面写的那样,让您的应用程序与 Internet Explorer 交互。
代码:
static void Main(string[] args)
{
SHDocVw.InternetExplorer IE = new SHDocVw.InternetExplorer();
object Empty = 0;
object URL = "http://www.orimi.com/pdf-test.pdf";
IE.BeforeNavigate2 += WebBrowser_BeforeNavigate21;
IE.FileDownload += IE_FileDownload;
IE.Visible = true;
Thread.Sleep(60000);
IE.Quit();
}
public void OnBeforeNavigate2(object sender, ref object URL,
ref object Flags, ref object Target,
ref object PostData, ref object Headers,
ref bool Cancel)
{
Console.WriteLine("BeforeNavigate2 fired!");
}
private static void IE_FileDownload(bool ActiveDocument, ref bool Cancel)
{
Console.WriteLine($"{ActiveDocument} {DateTime.Now}");
Cancel = true;
}
启用 IE 与应用交互:
1.1 在inernet explorer中打开"Internet Options" 1.2 取消选中 "Advance" 选项卡
下标记的复选框可以通过 BeforeNavigate2 事件完成,例如:
SHDocVw.InternetExplorer IE = new SHDocVw.InternetExplorer();
IE.BeforeNavigate2 += IE_BeforeNavigate2;
当用户下载文件时调用以下方法:
static void IE_BeforeNavigate2(object pDisp, ref object URL,
ref object Flags, ref object TargetFrameName, ref object PostData,
ref object Headers, ref bool Cancel)
{
Console.WriteLine("Event: IE_BeforeNavigate2");
}