win32 api遍历文件,进程

来源:互联网 发布:番号搜索软件 编辑:程序博客网 时间:2024/06/07 12:34
// cmd_mfc.cpp : 定义控制台应用程序的入口点。#include "stdafx.h"#include <Windows.h>#include <list>#include <string>#include <iostream>#include <TlHelp32.h>using namespace std;void enum_process(){HANDLE hProcessSnap=NULL;PROCESSENTRY32 pe32={0};hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);if(hProcessSnap==(HANDLE)-1){cout<<"CreateToolhelp32Snapshot failed"<<endl;}pe32.dwSize=sizeof(PROCESSENTRY32);if(Process32First(hProcessSnap,&pe32)){do{printf("%-20s         ID:%-5d\n",pe32.szExeFile,pe32.th32ProcessID);}while(Process32Next(hProcessSnap,&pe32));}else{cout<<"出现意外错误!错误提示"<<endl;}CloseHandle(hProcessSnap);}//win api 遍历文件目录void nr_enum_path(char *cpath){list<string> dir_list;string cdir,subdir;WIN32_FIND_DATA wfd;HANDLE hfd;int r;dir_list.push_back(string(cpath));while(dir_list.size()) {cdir = dir_list.back();dir_list.pop_back();SetCurrentDirectory(cdir.c_str());hfd = FindFirstFile("*.*",&wfd);if(hfd!=INVALID_HANDLE_VALUE) {do{if(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY){ if(wfd.cFileName[0] != '.') {// 合成完整路径名subdir=cdir+"\\"+string(wfd.cFileName);cout<<"push subdir: "<<subdir<<endl;// 递归枚举子目录dir_list.push_back(string(subdir));}}else{printf("%s\\%s\n",cpath,wfd.cFileName);// 病毒可根据后缀名判断// 是否要感染相应的文件}}while(r=FindNextFile(hfd,&wfd),r!=0);}}//end while } //搜索目录文件void enum_path(char *cpath){WIN32_FIND_DATA wfd; HANDLE hfd; char cdir[MAX_PATH]; char subdir[MAX_PATH]; int r; GetCurrentDirectory(MAX_PATH,cdir); SetCurrentDirectory(cpath); hfd = FindFirstFile("*.*",&wfd); if(hfd!=INVALID_HANDLE_VALUE) { do{if(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY){if(wfd.cFileName[0] != '.'){// 合成完整路径名sprintf(subdir,"%s\\%s",cpath,wfd.cFileName);// 递归枚举子目录enum_path(subdir);}}else{printf("%s\\%s\n",cpath,wfd.cFileName);// 病毒可根据后缀名判断是否要感染相应的文件}}while(r=FindNextFile(hfd,&wfd),r!=0);}SetCurrentDirectoryA(cdir);}int _tmain(int argc, _TCHAR* argv[]){//nr_enum_path("d:\\tomcat");enum_process();//enum_path("d:\\tomcat");getchar();return 0;}

0 0
原创粉丝点击