来,新手们,Internet Download Manager,艺术升华
这篇文章更新过后,我就准备回家过年了,你们好好的在整个春节慢慢研究。
我说过,技术的人总要有一些特例独行的思维产生,比如脑袋开始想起了一个技巧,爬虫。
爬啊爬啊,东西很多,有些地址我不好意思放出来,这个心里想想就好,但有人就是手痒,想把它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,艺术升华相关推荐
- Internet Download Manager简直就是下载器中的大杀器
随着网络的发达,用户的需求越来越多,满足这些需求的电脑软件也越来越多.很多时候,选择一个好的软件,抵得上同类.同系列四五款软件. 新购买的电脑一般都是仅仅安装了最简洁的Windows系统,但是想要实现 ...
- net空间一次购买终身使用_官方解答关于 Internet Download Manager IDM 终身许可证和1年许可证的相关说明!...
Internet Download Manager 许可证相关问题 IDM 是否一次性付款?IDM 许可证有效期多长?如果升级更新只有3年,为什么它被称为 "终身许可证" ?如果我 ...
- IDM(Internet Download Manager)—下载各类安装包(github代码、python包)、软件、视频、文档的神器,居家必备良药...
自从有了IDM (Internet Download Manager),不知迅雷.github加速器.镜像为何物.鸟枪换炮,过上了"他娘的意大利炮"的幸福生活[CoderBaby] ...
- idm下载器(Internet Download Manager)
idm下载器(Internet Download Manager) 1. 下载 到官网https://www.internetdownloadmanager.com/上下载即可 2. 安装 下载之后, ...
- 比迅雷好用,下载速度快5倍的下载软件IDM(Internet Download Manager)
家好,很高兴大家阅读本文章,我一直在做自媒体,而且自媒体现在也当自己的一份工作来做了,那么在做自媒体的过程,肯定也会需要找素材,而在找素材的过程中需要用到下载工具,大家说说看现在国内,那个下载工具最好 ...
- 实用Internet Download Manager(IDM)破解技巧,全版本通用!
IDM序列号生成器是一款电脑破解软件,该工具针对下载工具Internet Download Manager使用,原本软件为免费试用30天,破解后可以无限期使用注册版本,永久免费,快下载体验吧! IDM ...
- Internet Download Manager v6.41.3中文特别版IDM下载器免费下载
Internet Download Manager v6.41.3中文特别版(IDM),全球最佳下载利器.Internet Download Manager 是一款Windows 平台功能强大的多线程 ...
- Internet Download Manager v6.41Build 2简体中文版
小编今天说个Windows上非常好用的下载软件--IDM,全称Internet Download Manager,看名字就知道多厉害了. IDM被称为最好用的下载器不是没有理由的,它可以完全取代浏览器 ...
- Internet——Download——Manager学习记录
Internet Download Manager是一款下载神器,用了觉得不错,推荐使用 1.首先右键以管理员身份运行Internet Download Manager v6.38.2.1.exe 2 ...
最新文章
- IBM: 拆分瘦身,还有机会吗?
- SQLite添加列的限制
- ibatis中isEquals、isNotEmpty的用法
- es6语法-let定义变量和常量
- 【渝粤题库】陕西师范大学720001 分子生物学
- html5判断file选择状态,HTML input type=file选择图片立即显示
- mysql主从复制故障处理_MySQL主从复制故障处理一例
- linux服务器登录次数,Linux 服务器和Windows服务器 用户登录失败次数限制【互联网金融系统漏洞排查】...
- python float_Python float()
- html5rpg游戏策划案,HTML 5开发RPG游戏之一(地图人物实现)
- Use junit to test Trangle problem
- 解决远程windows server12桌面复制文件大于2G出错问题
- 软路由自建iptv服务器,LEDE软路由 iPTV 实现任意端口看电视的方法
- 记录 Spring Cloud GateWay 使用 路径与路由名字重复 出现的问题
- 以管理员身份在当前目录打开命令行窗口
- 野人参多少钱一斤?走进野人参高价格背后的秘密
- Spring、Springboot 应用启动为何这么慢,能否加速?
- 飞思卡尔I.MX6Q-LTIB安装配置
- 计算机应用基础搜题答案,2017计算机应用基础试题及答案
- 调用Excel 的Excel.Application失败的问题分析
热门文章
- 微服务:注册中心ZooKeeper、Eureka、Consul 、Nacos对比
- 短信导出工具V1.3
- 【大学课程自学网站】
- 2023转型“密码”——中小企业进销存软件
- 迅龙中文搜索 0.7 nSearch版 C# 源代码下载
- Flink中的CEP(一)
- STM32f429 CubeMx FreeRTOS emWin (Cubemx有BUG)
- 3.【Python编程】字典Dict相关知识及基本操作
- 买一台服务器到底能干什么?可用于这7点!
- Firefox(火狐浏览器)丰富的Web开发辅助插件