这篇文章更新过后,我就准备回家过年了,你们好好的在整个春节慢慢研究。

我说过,技术的人总要有一些特例独行的思维产生,比如脑袋开始想起了一个技巧,爬虫。

爬啊爬啊,东西很多,有些地址我不好意思放出来,这个心里想想就好,但有人就是手痒,想把它Down下来当成犯罪证据。

下载工具Internet Download Manager(简称IDM)可以说是强大无比,当然你要拿BT种子,它是没辙就是了。

我们得做好公民应尽的职责,不要用BT去乱搞,人人影视网都被抓了,你还不老实,就因为BT太好用。

所以爬虫与IDM与春节的绵绵细雨更配哦。

爬虫我就不讲了高深的东西,去了解下,我们今天就来Down东西就行了。

下载很简单,迅雷,IDM算是比较主流能够开发对应接口调用的两个工具,但迅雷自从我会员过期后就没在考虑充值了。所以我理所当然的选择IDM作为我喜欢的下载工具。

添加批量任务了解下,虽然我们的实际跟它半毛关系都没有。

作为一名NET程序猿你这么Low,批量还得打开IDM来操作,我不想,你就在后台跑就行了,我告诉你要下载什么,你自己运行,自己下载,下载不了我就把你给卸载了。

想要作为资深影视专家或者艺术照专家你得先准备一些工具。

NET IDE VS03~VS2019随便选,反正我是用VS2017

艹还没开始就一堆七七八八,这么多就为了能让你向艺术之巅再出发,所以忍一下,忍一下就过去了。

首先你会遇到第一个难点,一串神秘代码,VB啊,天,怎么搞,我都快10年没碰了,但为了艺术,盘它。

Private Sub Command1_Click()Dim idm1 As CIDMLinkTransmitterDim referer As StringDim cookie As StringDim postData As StringDim user As StringDim password As StringSet idm1 = CreateObject("IDMan.CIDMLinkTransmitter")idm1.SendLinkToIDM "http://www.internetdownloadmanager.com/idman401.exe",referrer, cookie, postData, user, password, "C:\", "idman401.exe", 0
End Sub

虽然我把VB语法都忘光了也难不倒我看懂它:CIDMLinkTransmitter 这个是定义的东西哪里来? Set 语法哪里来?CreateObject 又是哪里来?我再次从新问了三次这些东西哪里来的啊。

其实很简单,你谷歌翻墙就知道了。

CIDMLinkTransmitter 是一个接口,也就说你需要它,但它哪里来呢。

作为一名不合格的程序猿你一定要刨根问底找到原有,有个奇怪的字眼混在里面,IDManLib说的是个Lib文件,进去之后发现根本没有用,我们换个方式,不同的眼光能够了解不同的艺术的角度。

然后我就用 IDM结果还真有那么多东西出来

告诉我们你必须得(You should)初中英语应该学过,可能现在小学课本就有了

而且还是你Run 那个什么Type Library Importer 呱噪~

好吧跟着走就是了。三个文件

但语句中混入了奇怪的软件(TlbImp.exe),我得想办法,Everything 它总是来得这么及时,如果你搜索不到,那恭喜你,你不是一个合格的开发员,赶紧回家过年

跟谷歌那个写出来的步骤结果一模一样就像孪生兄弟,一点都不含糊。但问题是生成的文件哪去了,不知道啊

还是找到了,我真是天才

唐僧取经已经走到了低九九八十难了,引用,你肯定会把,引用它,它等下会给你找事情做的。

如此简单就完成了,剩下的就爬虫就好了,哈哈哈哈哈哈哈哈哈,大笑三声后就可以成为艺术家了。

//VB源码//http://www.internetdownloadmanager.com/support/idm_api.html//Dim idm1 As CIDMLinkTransmitter//Dim referer As String//Dim cookie As String//Dim postData As String//Dim user As String//Dim password As String//Set idm1 = CreateObject("IDMan.CIDMLinkTransmitter")//idm1.SendLinkToIDM "http://www.internetdownloadmanager.com/idman401.exe",//referrer, cookie, postData, user, password, "C:\", "idman401.exe", 0//C#源码public Type GetObject(string type,string libName){if (type == "1"){System.Type oType = System.Type.GetTypeFromCLSID(new Guid(libName));return oType;}else{System.Type oType = System.Type.GetTypeFromProgID(libName);return oType;}}public void Click(){string referrer = "";string cookie="";string postData="";string user="";string password="";Type getObj = GetObject("2", "IDMan.CIDMLinkTransmitter");var o = Activator.CreateInstance(getObj);object[] param = new object[9];param[0] = txtDownLink.Text;param[1] = referrer;param[2] = cookie;param[3] = postData;param[4] = user;param[5] = password;param[6] = @"C:\";param[7] = "另存名字.exe";param[8] = 0;getObj.InvokeMember("SendLinkToIDM", System.Reflection.BindingFlags.InvokeMethod, null, o, param);
}

当然翻到这里你会发现篇幅似乎还没完啊。

1)Type getObj = GetObject("2", "IDMan.CIDMLinkTransmitter") 获取的 getObj 值为null?

2)var o = Activator.CreateInstance(getObj); 报错?

说好的别人代码都是这样转啊,为什么返回null。

原因可能如下,我呢是用的破解版的,注册表中根本没有 IDMan.CIDMLinkTransmitter 这玩意儿。你可以尝试重启电脑试试。

总之,我们通过COM进行调用,你得保证它是存在得,谁说都不算,只有它再注册表才算。如果没有,那么你就重启重新安装注册,重启电脑,就这么一直重复操作,五年后应该就会有了。

没错就这么简单即使我不说你也能花三天找到答案。

然后运行代码……

百分之五十的概率,这个东西你运行不起来。

我花了两个小时也没解决的问题。

提示:错误异常 COM 目标不会实现 IDispatch。

我也不知道为什么,总之两个小时候我就不再纠结这是问题了。

然后开始翻谷歌,这语句写的也没错啊。

错误提示:

严重性  代码  说明  项目  文件  行   禁止显示状态
错误  CS1752  无法嵌入互操作类型“CIDMLinkTransmitterClass”。请改用适用的接口。   IDMDownLoading  C:\Users\temshow\source\repos\IDMDownLoading\IDMDownLoading\Form1.cs    73  活动的

然后各种巴赫猜想,最终定位再一句,互操作类型,然后试着改下,欸,还真可以了。

再次调用真的,真的就成功了。

但我就是纠结

getObj.InvokeMember("SendLinkToIDM", System.Reflection.BindingFlags.InvokeMethod, null, o, param);

为什么要给我报错,我做错了什么。

然后神奇的事情就来了

var o = Activator.CreateInstance(getObj);=》var o = (IDManLib.CIDMLinkTransmitter)Activator.CreateInstance(getObj);o.SendLinkToIDM("http://www.internetdownloadmanager.com/idman401.exe", referrer, cookie, postData, user, password, @"C:\", "idman401.exe", 0);

成功了,竟然也成功了。

new IDManLib.CIDMLinkTransmitter().SendLinkToIDM("http://www.internetdownloadmanager.com/idman401.exe", referrer, cookie, postData, user, password, @"C:\", "idman401.exe", 0);

这个也成功了,也成功了!!你知道吗,它也成功了,我他妈的狗……拿耗子。

要知道怎么多调用方式我随便一个都行啊。

最终贴上完整代码,代码是编译不过去得,有问题,也说了解决的相关问题,你得自己看,否则怎么能见到真正得艺术呢。您说是吧!

using IDManLib;
using System;
using System.Windows.Forms;namespace IDMDownLoading
{public partial class Form1 : Form{public Form1(){InitializeComponent();}/// <summary>/// /// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void btnDown_Click(object sender, EventArgs e){//VB源码//http://www.internetdownloadmanager.com/support/idm_api.html//Dim idm1 As CIDMLinkTransmitter//Dim referer As String//Dim cookie As String//Dim postData As String//Dim user As String//Dim password As String//Set idm1 = CreateObject("IDMan.CIDMLinkTransmitter")//idm1.SendLinkToIDM "http://www.internetdownloadmanager.com/idman401.exe",//referrer, cookie, postData, user, password, "C:\", "idman401.exe", 0string referrer = "";string cookie="";string postData="";string user="";string password="";//正常方法1Type getObj = GetObject("1", "AC746233-E9D3-49CD-862F-068F7B7CCCA4");//正常方法2//Type getObj = GetObject("2", "IDMan.CIDMLinkTransmitter");var o = (IDManLib.CIDMLinkTransmitter)Activator.CreateInstance(getObj);#region 报错代码 //错误异常 COM 目标不会实现 IDispatch。object[] param = new object[9];param[0] = txtDownLink.Text;param[1] = referrer;param[2] = cookie;param[3] = postData;param[4] = user;param[5] = password;param[6] = @"C:\";param[7] = "另存名字.exe";param[8] = 0;getObj.InvokeMember("SendLinkToIDM", System.Reflection.BindingFlags.InvokeMethod, null, o, param);#endregion#region 正常调用1o.SendLinkToIDM("http://www.internetdownloadmanager.com/idman401.exe", referrer, cookie, postData, user, password, @"C:\", "idman401.exe", 0);#endregion#region 正常调用2new IDManLib.CIDMLinkTransmitter().SendLinkToIDM("http://www.internetdownloadmanager.com/idman401.exe", referrer, cookie, postData, user, password, @"C:\", "idman401.exe", 0);#endregion#region 正常调用3new IDManLib.CIDMLinkTransmitterClass().SendLinkToIDM("http://www.internetdownloadmanager.com/idman401.exe", referrer, cookie, postData, user, password, @"C:\", "idman401.exe", 0);#endregion#region 正常调用4new IDManLib.CIDMLinkTransmitterClass().SendLinkToIDM2("http://www.internetdownloadmanager.com/idman401.exe", referrer, cookie, postData, user, password, @"C:\", "idman401.exe", 0, null, null);#endregion}public Type GetObject(string type,string libName){if (type == "1"){System.Type oType = System.Type.GetTypeFromCLSID(new Guid(libName));return oType;}else{System.Type oType = System.Type.GetTypeFromProgID(libName);return oType;}}}
}

当然调用完你会发现它会弹出下载框,而你解决掉它,你可以用 去掉第三方弹框的方式处理,当你处理不了的时候,

你就这样,设置下就行了

全套内容 (EveryThing没打包,VS2017也没打包)

度盘/s/1QAFPTwwFbzDYIB972VIVjA  密码 JEE8

来,新手们,Internet Download Manager,艺术升华相关推荐

  1. Internet Download Manager简直就是下载器中的大杀器

    随着网络的发达,用户的需求越来越多,满足这些需求的电脑软件也越来越多.很多时候,选择一个好的软件,抵得上同类.同系列四五款软件. 新购买的电脑一般都是仅仅安装了最简洁的Windows系统,但是想要实现 ...

  2. net空间一次购买终身使用_官方解答关于 Internet Download Manager IDM 终身许可证和1年许可证的相关说明!...

    Internet Download Manager 许可证相关问题 IDM 是否一次性付款?IDM 许可证有效期多长?如果升级更新只有3年,为什么它被称为 "终身许可证" ?如果我 ...

  3. IDM(Internet Download Manager)—下载各类安装包(github代码、python包)、软件、视频、文档的神器,居家必备良药...

    自从有了IDM (Internet Download Manager),不知迅雷.github加速器.镜像为何物.鸟枪换炮,过上了"他娘的意大利炮"的幸福生活[CoderBaby] ...

  4. idm下载器(Internet Download Manager)

    idm下载器(Internet Download Manager) 1. 下载 到官网https://www.internetdownloadmanager.com/上下载即可 2. 安装 下载之后, ...

  5. 比迅雷好用,下载速度快5倍的下载软件IDM(Internet Download Manager)

    家好,很高兴大家阅读本文章,我一直在做自媒体,而且自媒体现在也当自己的一份工作来做了,那么在做自媒体的过程,肯定也会需要找素材,而在找素材的过程中需要用到下载工具,大家说说看现在国内,那个下载工具最好 ...

  6. 实用Internet Download Manager(IDM)破解技巧,全版本通用!

    IDM序列号生成器是一款电脑破解软件,该工具针对下载工具Internet Download Manager使用,原本软件为免费试用30天,破解后可以无限期使用注册版本,永久免费,快下载体验吧! IDM ...

  7. Internet Download Manager v6.41.3中文特别版IDM下载器免费下载

    Internet Download Manager v6.41.3中文特别版(IDM),全球最佳下载利器.Internet Download Manager 是一款Windows 平台功能强大的多线程 ...

  8. Internet Download Manager v6.41Build 2简体中文版

    小编今天说个Windows上非常好用的下载软件--IDM,全称Internet Download Manager,看名字就知道多厉害了. IDM被称为最好用的下载器不是没有理由的,它可以完全取代浏览器 ...

  9. Internet——Download——Manager学习记录

    Internet Download Manager是一款下载神器,用了觉得不错,推荐使用 1.首先右键以管理员身份运行Internet Download Manager v6.38.2.1.exe 2 ...

最新文章

  1. IBM: 拆分瘦身,还有机会吗?
  2. SQLite添加列的限制
  3. ibatis中isEquals、isNotEmpty的用法
  4. es6语法-let定义变量和常量
  5. 【渝粤题库】陕西师范大学720001 分子生物学
  6. html5判断file选择状态,HTML input type=file选择图片立即显示
  7. mysql主从复制故障处理_MySQL主从复制故障处理一例
  8. linux服务器登录次数,Linux 服务器和Windows服务器 用户登录失败次数限制【互联网金融系统漏洞排查】...
  9. python float_Python float()
  10. html5rpg游戏策划案,HTML 5开发RPG游戏之一(地图人物实现)
  11. Use junit to test Trangle problem
  12. 解决远程windows server12桌面复制文件大于2G出错问题
  13. 软路由自建iptv服务器,LEDE软路由 iPTV 实现任意端口看电视的方法
  14. 记录 Spring Cloud GateWay 使用 路径与路由名字重复 出现的问题
  15. 以管理员身份在当前目录打开命令行窗口
  16. 野人参多少钱一斤?走进野人参高价格背后的秘密
  17. Spring、Springboot 应用启动为何这么慢,能否加速?
  18. 飞思卡尔I.MX6Q-LTIB安装配置
  19. 计算机应用基础搜题答案,2017计算机应用基础试题及答案
  20. 调用Excel 的Excel.Application失败的问题分析

热门文章

  1. 微服务:注册中心ZooKeeper、Eureka、Consul 、Nacos对比
  2. 短信导出工具V1.3
  3. 【大学课程自学网站】
  4. 2023转型“密码”——中小企业进销存软件
  5. 迅龙中文搜索 0.7 nSearch版 C# 源代码下载
  6. Flink中的CEP(一)
  7. STM32f429 CubeMx FreeRTOS emWin (Cubemx有BUG)
  8. 3.【Python编程】字典Dict相关知识及基本操作
  9. 买一台服务器到底能干什么?可用于这7点!
  10. Firefox(火狐浏览器)丰富的Web开发辅助插件