`
qinya06
  • 浏览: 593523 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

转:java写的电驴下载完成关机小程序

阅读更多
verycd下载套路,
发现一个downloads.txt文件同步正在下载的资源信息,下载完成后自动删除里面的记录,


思路:读downloads.txt文件,利用关键字把里面的记录分割后加入list,选择监视的文件名,利用while循环的倒计时方法以文件名为关键字从list里定时搜索,如果下载完成,调用runtime类运行dos命令shutdown,执行关机.
代码如下:
import java.io.BufferedReader;    
import java.io.File;    
import java.io.FileInputStream;    
import java.io.FileNotFoundException;    
import java.io.IOException;    
import java.io.InputStreamReader;    
import java.io.UnsupportedEncodingException;    
import java.util.ArrayList;    
import java.util.Iterator;    
import java.util.List;    
import java.util.Scanner;    
  
/**   
* @author Y 2010/04/01 23:39   
*/    
public class ShutDown {    
// easyMule下downloads.txt文件的路径    
public static final String FILEPATH = “D:\\Program Files\\easyMule\\downloads.txt”;    
  
// 查找下载记录数的关键字    
public static final String KEYWORD = “ed2k://|file|”;    
  
// 刷新读入downloads.txt的时间(秒)    
int second = 5;    
  
// 下载完成后关机的延迟时间(秒)    
int times = 60;    
  
// 需要监视的文件id号    
int id;    
  
// 监视的文件名称    
String fileName;    
  
public ShutDown() {    
  System.out.println(“当前的下载文件信息为:”);    
  System.out    
    .println(“————————————————————–”);    
  showFile(readText(FILEPATH, KEYWORD));    
  System.out    
    .println(“————————————————————–”);    
  System.out.println(“要等哪个文件下载完成关闭计算机?”);    
  Scanner scan = new Scanner(System.in);    
  id = scan.nextInt() – 1;    
  fileName = (String) readText(FILEPATH, KEYWORD).get(id);    
  System.out.println(“监视的文件是:” + fileName);    
  while (countDown(second)) {    
  
   if (readText(FILEPATH, fileName).size() == 0) {    
    shutDownComputer(times);    
    System.out.println(“计算机将在” + times + “秒内关闭”);    
    System.out.println(“输入任意内容可取消关闭计算机”);    
    if (null != scan.next()) {    
     unShutDownComputer();    
    }    
    break;    
   }    
  }    
}    
  
// 利用线程休眠进行倒计时    
public boolean countDown(int second) {    
  for (int i = second; i >= 0; i–) {    
   try {    
    Thread.sleep(1000);    
    if (i == 0) {    
     return true;    
    }    
   } catch (InterruptedException e) {    
    e.printStackTrace();    
   }    
  }    
  return false;    
}    
  
  
  
// 读取文件,查找下载的条目,返回List集合    
public List readText(String filePath, String searchWord) {    
  List list = new ArrayList();    
  File file = new File(filePath);    
  InputStreamReader reader = null;    
  BufferedReader br = null;    
  try {    
   // downloads.txt文件采用Unicode编码,需要转码    
   reader = new InputStreamReader(new FileInputStream(file), “utf-16″);    
   br = new BufferedReader(reader);    
   String s1 = null;    
   while ((s1 = br.readLine()) != null) {    
    int position = s1.indexOf(searchWord);    
    if (position != -1) {    
     s1 = s1.substring(0, position).trim();    
     list.add(s1);    
  
    }    
   }    
  } catch (UnsupportedEncodingException e) {    
   e.printStackTrace();    
  } catch (FileNotFoundException e) {    
   e.printStackTrace();    
  } catch (IOException e) {    
   e.printStackTrace();    
  } finally {    
   try {    
    br.close();    
    reader.close();    
   } catch (IOException e) {    
    e.printStackTrace();    
   }    
  
  }    
  
  return list;    
  
}    
  
// 查看当前下载的记录数    
public void showFile(List list) {    
  Iterator iter = list.iterator();    
  int count = 1;    
  while (iter.hasNext()) {    
   System.out.println(count + “=>” + iter.next());    
   count++;    
  }    
}    
  
// 关闭计算机    
public void shutDownComputer(int times) {    
  Runtime run = Runtime.getRuntime();    
  try {    
   run.exec(“shutdown -s -t” + ” ” + times);    
  } catch (IOException e) {    
   e.printStackTrace();    
  }    
}    
  
// 取消关闭计算机    
public void unShutDownComputer() {    
  Runtime run = Runtime.getRuntime();    
  try {    
   run.exec(“shutdown -a”);    
  } catch (IOException e) {    
   e.printStackTrace();    
  }    
}    
  
public static void main(String[] args) {    
  new ShutDown();    
  
}    
  
}   
分享到:
评论

相关推荐

    C语言实现电驴下载完成后自动关机

    本篇文章介绍了一个用C语言编写的简单程序,该程序能够在检测到电驴下载完成时自动执行关机操作。 #### 知识点解析 1. **程序功能说明:** - **目标:** 该程序的主要目的是监测电驴(eMule)的临时文件夹(默认...

    电驴自动关机程序1.0

    程序目的:由于电驴软件没有下载完毕自动关机的功能,所以为了方便大家能在下载完成后自动关机节省电力资源,我就开发了一个关机外挂。希望大家能用得开心,如果发现任何bug,请联系我。 使用方法: 1. 选择你的...

    另类实现的电驴自动关机

    标题“另类实现的电驴自动关机”指的是利用一种非传统的方法来让电驴(eMule)在完成下载任务后自动关闭计算机。这种方法基于一个特定的条件,即检查下载目录中是否存在`.met`文件,这是一个eMule下载过程中产生的...

    emule电驴自动关机程序

    标题中的“emule电驴自动关机程序”指的是一个利用编程技术实现的工具,它能够监控eMule(电驴)的下载状态,并在下载任务完成后自动关闭计算机。eMule是一款流行的P2P(对等网络)文件分享软件,用户可以使用它来...

    迅雷/快车/BT/电驴下载地址互相转换工具

    标题中的“迅雷/快车/BT/电驴下载地址互相转换工具”指的是一个软件程序,它能够处理不同类型的下载链接,将它们在迅雷、快车、BT(BitTorrent)和电驴(eDonkey)之间进行转换。这个工具对于用户来说非常方便,因为...

    电驴关机器 能使电驴想迅雷一样下载完关机

    由于电驴是一款资源共享软件而非下载器,所以官方一直不加入下载完成后关机,目的是下载完后提供资源给其他用户。而且官方声明以后也不会添加该功能。 为此我开发了这款软件,它可以见监控当前的下载任务,当任务...

    电驴自动关机程序源码(C#)

    标题 "电驴自动关机程序源码(C#)" 涉及到的知识点主要集中在两个核心概念:电驴(eDonkey)和自动关机程序的实现,具体使用C#编程语言来完成。电驴是一种早期流行的P2P文件共享软件,而自动关机程序则是计算机操作...

    电驴(easyMule)自动关机工具

    标题中的“电驴(easyMule)自动关机工具”是指一种专为解决easyMule软件在下载完成后无法自动关机的问题而设计的小型应用程序。EasyMule是一款基于eDonkey网络协议的P2P文件分享软件,它允许用户在全球范围内共享和...

    Java版的电驴客户端代码

    Java版的电驴客户端代码 JMule - is a Java based client for eDonkey2000 networks. Using JMule, you will be able to share your files with anybody in the world. This client is completely free and the ...

    电驴资源不能下载解决方法

    在IT领域,电驴(eMule)是一种非常流行的P2P(peer-to-peer)文件共享软件,允许用户从全球的网络中下载和分享各种类型的文件。然而,有时用户可能会遇到资源无法下载的问题,这可能是由于多种原因引起的。本文将...

    电驴下载高积分文件

    标题中的“电驴下载高积分文件”指的是使用电驴网络(eDonkey Network)或其变种如Morpheus、Kazaa等P2P(peer-to-peer)软件进行下载时,涉及到的一种特殊资源。在电驴网络中,用户在上传文件给其他用户的同时可以...

    提高电驴下载的电驴积分文件

    标题中的“提高电驴下载的电驴积分文件”暗示了我们正在讨论的内容是关于通过某种方式优化电驴(eDonkey)网络中的积分系统,以提升下载效率。电驴是一种P2P(peer-to-peer)文件共享网络,用户可以通过贡献上传流量...

    地址转化器 迅雷,电驴,网盘,快车,旋风,http链接转化

    “通用地址互转器.exe”很可能是这个转化工具的可执行文件,用户运行这个程序就可以实现不同下载链接之间的转换。这类工具通常会解析链接的格式,然后根据目标下载器的要求重新构造链接,使得原本无法在特定下载器中...

    电驴下载方法

    ### 电驴下载方法 在互联网发展的早期阶段,电驴(eMule)作为一种非常流行的P2P(点对点)文件共享软件,受到了广大用户的欢迎。然而,随着时间的推移和技术的发展,电驴面临着越来越多的挑战,尤其是版权问题导致...

    疯狂Java李刚.doc

    - **异常处理**:Java中的异常处理机制能够有效地管理程序运行时可能出现的各种错误情况。 - **多线程编程**:Java支持多线程编程,能够实现并发执行任务,提高程序的效率。 - **网络编程**:Java内置了强大的网络...

    Delphi开发的支持电驴的下载源码

    然而,使用Delphi来实现电驴协议的下载程序源码却相对稀缺。这份“Delphi开发的支持电驴的下载源码”无疑为研究者和开发者提供了一次宝贵的实践机会。 首先,我们需要了解电驴协议。电驴是一个P2P(对等网络)文件...

    旋风电驴迅雷快车地址转换工具

    《旋风电驴迅雷快车地址转换工具》是一款专为不同下载软件设计的实用辅助工具,旨在解决用户在使用各种下载客户端时遇到的资源地址不兼容问题。它能够帮助用户轻松地将一种下载器的链接格式转换为另一种,极大地提高...

    电驴提示“该内容尚未提供权利证明_无法提供下载”之解决办法详解

    标题中的问题直指电驴(eDonkey)用户在尝试下载内容时遇到的困扰,即“该内容尚未提供权利证明,无法提供下载”的错误提示。这个提示通常意味着所请求的文件可能由于版权或其他法律原因,不能被电驴网络提供。为了...

    MetFileRegenerator 电驴下载数据库文件修复工具

    你是否有过这样不堪回首的经历:忍受着电驴几K每秒的龟速守在电脑旁好多天等它下载一个庞大资源时电脑意外崩溃了,再打开电驴一看,连下载任务都没有了,以前的下载进度荡然无存化为乌有,无奈之下从头下起,当时的...

Global site tag (gtag.js) - Google Analytics