使用C#调用旋风快车和迅雷下载文件 也是C#调用Com的好例子!

简介: <p>有时候我们需要调用现成的下载工具来下载,那么这些下载工具一般都是通过COM接口来操作的。 </p> <p>至于如何知道这些com接口,自己找一下他们安装后的目录下的html文件就可以发现了。 </p> <p>如何使用c#调用com是我们的重点。 </p> <p>如下所示:</p> <p>public static void DownloadByQQ(string url)

有时候我们需要调用现成的下载工具来下载,那么这些下载工具一般都是通过COM接口来操作的。

至于如何知道这些com接口,自己找一下他们安装后的目录下的html文件就可以发现了。

如何使用c#调用com是我们的重点。

如下所示:

public static void DownloadByQQ(string url)
      {
          Type qqdown;//类型
          object qqdowobj;//一个对象
          object[] parameter = new object[6];//参数,因为我们调用的方法有6和参数。 所以定义了6个
          if (url  != null && url.Length >0)
          {
              qqdown = Type.GetTypeFromProgID("QQIEHelper.QQRightClick.2");//从progid创建类型
              qqdowobj = Activator.CreateInstance(qqdown);//然后创建实例
              parameter[0] = url;//第一个参数是url
              parameter[1] = url ;//第二个参数是引用url,这里我们填成一样的
              parameter[2] = "www.mp3114.cn";//注释信息
              parameter[3] = null;
              parameter[4] = 0;
              parameter[5] = null;
              qqdown.InvokeMember("sendUrl2", BindingFlags.InvokeMethod, null, qqdowobj, parameter);//使用invokemember调用方法

//BindingFlags 中有很多枚举,分别是用于调用方法或者属性的设置 获取等绑定标记。 你可以参考一下msdn
          }
      }

//看到这里你也许已经明白如何做了。 如果还不明白呢。 接着看一遍。 或者把代码贴到程序里单步调试一遍就自然明白啦。
      public static void DownloadByThunder(string url)
      {
          Type  ThunderAgent;// = new ActiveXObject("ThunderAgent.Agent");
          object objThunderAgent;
          object[] parameter = new object[14];
          if (url != null && url.Length > 0)
          {
              ThunderAgent = Type.GetTypeFromProgID("ThunderAgent.Agent");
              objThunderAgent = Activator.CreateInstance(ThunderAgent);
              parameter[0] = url;
              parameter[1] = "";
              parameter[2] = "";
              parameter[3] = "www.mp3114.cn";
              parameter[4] = url ;
              parameter[5] = -1;
              parameter[6] = 0;
              parameter[7] = -1;
              parameter[8] = "";//strCookie
              parameter[9] = "";
              parameter[10] = "";
              parameter[11] = 1;
              parameter[12] = "";
              parameter[13] = -1;
              ThunderAgent.InvokeMember("AddTask5", BindingFlags.InvokeMethod, null, objThunderAgent, parameter);
             // ThunderAgent.AddTask5(Url, "", "", Info, Location, -1, 0, -1, strCookie, "", "", 1, "", -1);
              object[] parm = new object[1];
              parm[0] = 1;
              ThunderAgent.InvokeMember("CommitTasks2", BindingFlags.InvokeMethod, null, objThunderAgent, parm);
          }
      }
      public static void DownloadByFlashGet(string url)
      {
          Type FlashGet;
          object objFlashGet;
          object[] parameter = new object[5];
          if (url != null && url.Length > 0)
          {
              FlashGet = Type.GetTypeFromProgID("BHO.IFlashGetNetscapeEx");
              objFlashGet = Activator.CreateInstance(FlashGet);
              parameter[0] = url;
              parameter[1] = "www.mp3114.cn";
              parameter[2] = url;
              parameter[3] = "FlashGet";
              parameter[4] = 0;
              FlashGet.InvokeMember("AddUrlEx", BindingFlags.InvokeMethod, null, objFlashGet, parameter);
          }
      }

目录
相关文章
|
3天前
|
数据采集 JavaScript C#
C#图像爬虫实战:从Walmart网站下载图片
C#图像爬虫实战:从Walmart网站下载图片
|
29天前
|
数据采集 XML JavaScript
C# 中 ScrapySharp 的多线程下载策略
C# 中 ScrapySharp 的多线程下载策略
|
1月前
|
监控 安全 C#
使用C#如何监控选定文件夹中文件的变动情况?
使用C#如何监控选定文件夹中文件的变动情况?
94 19
|
1月前
|
编译器 C# Windows
C#基础:手动编译一个.cs源代码文件并生成.exe可执行文件
通过上述步骤,应该能够高效准确地编译C#源代码并生成相应的可执行文件。此外,这一过程强调了对命令行编译器的理解,这在调试和自动化编译流程中是非常重要的。
72 2
|
1月前
|
文字识别 C# Python
使用C#将几个Excel文件合并去重分类
使用C#将几个Excel文件合并去重分类
21 3
|
1月前
|
C# 图形学 数据安全/隐私保护
Unity数据加密☀️ 二、使用Rider将C#代码生成DLL文件
Unity数据加密☀️ 二、使用Rider将C#代码生成DLL文件
|
1月前
|
C#
C# 写日志文件
C# 写日志文件
38 0
|
3月前
|
C#
【C#】C#读写Excel文件
【C#】C#读写Excel文件
55 1
|
3月前
|
JavaScript 前端开发 C#
初识Unity——创建代码、场景以及五个常用面板(创建C#代码、打开代码文件、场景的创建、Project、Hierarchy、Inspector、Scene、Game )
初识Unity——创建代码、场景以及五个常用面板(创建C#代码、打开代码文件、场景的创建、Project、Hierarchy、Inspector、Scene、Game )
76 0