最初的想法是Runtime.exec通过命令行启动迅雷,但不知道迅雷的命令行参数,大家都知道种子搜索器可以调用迅雷,不懂种子搜索器的都是纯洁的孩子。。。。,通过任务管理器查看迅雷的启动命令行是类似于以下格式
/AgentFile:E:\1.torren
但自己模拟了好几次,只有一两次成功。。。无语了。
突然想到浏览器可以启动迅雷处理thunder协议的URL,如果可以构造出thunder协议的URL,那么可以借助打开浏览器的API打开迅雷,代码如下
1 package com.demo; 2 3 import java.awt.Desktop; 4 import java.net.URI; 5 6 7 public class Demo { 8 public static void main(String[] cmd) throws Exception { 9 String website="thunder://QUFmdHA6Ly9keTExMTpwaWFvaHVhQGR" + 10 "5MTExLnBpYW9odWEuY29tOjExNC8lRTklQTMlOTglRT"+ 11 "glOEElQjElRTclOTQlQjUlRTUlQkQlQjElRTQlQjglOEIl"+ 12 "RTglQkQlQkQlRTclQUIlOTl3d3cucGlhb2h1YS5jb20lRTYlQkEl"+ 13 "OTAlRTQlQkIlQTMlRTclQTAlODE3MjBwLnJtdmJaWg=="; 14 Desktop desktop = Desktop.getDesktop(); 15 URI uri = new URI(website); 16 desktop.browse(uri); 17 } 18 }
这样就可以顺利的调用迅雷,而且可以跨平台,貌似其他平台迅雷也不支持,如果不能启动迅雷,可能是你浏览器禁用迅雷插件,在迅雷设置中修复下就行了。
唯一不足的就是要将URL转换成thunder,关于thunder协议网上也有很多的介绍其实就是对URL进行base64编码,加个AA的头ZZ的尾