//cleanDos2011.5.31.3.cpp
//win32控制台程序,界面做不出来
//没有严格测试过
#include <windows.h>
#include <stdio.h>
#include <string.h>
DWORD Total = 0; //文件和目录数量
DWORD dwFile = 0; //文件数量
DWORD dwFolder = 0; //所文件夹数量
DWORD dwDeleteFile = 0; //删除文件数量
//公共
VOID TimeDifference(SYSTEMTIME StOld, SYSTEMTIME StNow);//时差
VOID Show(VOID);
DWORD FindDirFile(LPSTR szPath); //遍历文件和目录
DWORD DeleteFileSuffix(LPSTR szPath, LPSTR Suffix);//删除特定后缀文件 //这有时删的干净,有时删不干净,本来是想删文件夹的,
DWORD DeleteDirFile(LPSTR szPath); //删除文件夹里的文件 //后面发现RemoveDirectory()只能删空文件夹,导致路径错误,就不要了.
VOID Clear0(DWORD *Total, DWORD *dwFile, DWORD *dwFolder, DWORD *dwDeleteFile);
VOID OS_Version(CHAR *szVersionInfo);
//1
VOID GetSystemDir(VOID); //获取系统位置
VOID SystemInfo(VOID); //获取系统信息
VOID GetTime(VOID); //获取时间
VOID SpaceSize(CHAR *RootPathName);
VOID PrintSpaceSize();
VOID AllSystemInfo(VOID);
//2
VOID DeleteRubbish(VOID); //删除垃圾文件
//3
VOID QQClean(VOID);//Win7 / XP
//VOID GetUserNameDocuments(LPSTR c);//获取用户名
//4
VOID StatisticsFile(VOID);//统计
VOID Conversion(CHAR* c); //格式转化
//5清理痕迹
VOID DeleteTrace(VOID);
VOID Show(VOID)
{
printf("\n1: 系统信息\t");
printf("2:垃圾清理\t");
printf("3: QQ还原\t\n");
printf("4: 统计文件\t");
printf("5: 清理痕迹\t");
printf("其他: 退出\n\n");
}
VOID GetSystemDir()
{
CHAR UserName[MAX_PATH];
DWORD dw = MAX_PATH;
GetUserName(UserName, &dw);
printf("用户名: %s\n", UserName);
CHAR SystemDir[MAX_PATH];
CHAR WindowDir[MAX_PATH];
GetSystemDirectory(SystemDir, MAX_PATH);
GetWindowsDirectory(WindowDir, MAX_PATH);
printf("系统目录:%s\nWindows目录:%s", SystemDir, WindowDir);
}
VOID SystemInfo()
{
SYSTEM_INFO SysInfo;
GetSystemInfo(&SysInfo);
printf("\n内存分页大小: 0x%.8X", SysInfo.dwPageSize);
printf("\n可用内存起始: 0x%.8x", SysInfo.lpMinimumApplicationAddress);
printf("\n可用内存结束: 0x%.8x", SysInfo.lpMaximumApplicationAddress);
printf("\nCPU个数: %d", SysInfo.dwNumberOfProcessors);
printf("\nCPU类型: ");
switch (SysInfo.dwProcessorType)
{
case PROCESSOR_INTEL_386:
printf("386\n");
break;
case PROCESSOR_INTEL_486:
printf("486\n");
break;
case PROCESSOR_INTEL_PENTIUM:
printf("pentium, Cpu Model 0x%.2X, Stepping 0x%.2X\n",(BYTE)(SysInfo.wProcessorRevision>>8), (BYTE)SysInfo.wProcessorRevision);
break;
case PROCESSOR_INTEL_IA64:
printf("IA64\n");
break;
case PROCESSOR_AMD_X8664:
printf("AMD x86 64\n");
break;
}
printf("处理器架构: ");
switch (SysInfo.wProcessorArchitecture)
{
case PROCESSOR_ARCHITECTURE_INTEL:
printf("intel");
printf(" CPU vendor is %d\n",SysInfo.wProcessorLevel);
break;
case PROCESSOR_ARCHITECTURE_IA64:
printf("64 bits intel\n");
break;
case PROCESSOR_ARCHITECTURE_AMD64:
printf("64 bits AMD\n");
break;
case PROCESSOR_ARCHITECTURE_UNKNOWN:
printf("UNKNOWN\n");
break;
}
}
VOID GetTime()
{
SYSTEMTIME st;
// 获取时间
GetLocalTime( &st );
printf("日期: %d-%d-%d\n", st.wYear, st.wMonth, st.wDay);
printf("时间: %d:%d:%d\n", st.wHour, st.wMinute, st.wSecond);
printf("已开机: %d分钟", GetTickCount()/1000/60);
}
VOID OS_Version(CHAR *szVersionInfo)
{
OSVERSIONINFO OS;
// 设置参数大小,调用并判断是否成功
OS.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
if(!GetVersionEx(&OS))
{
printf("error %d\n",GetLastError());
return;
}
switch(OS.dwMajorVersion)
{
case 5:
switch(OS.dwMinorVersion)
{
case 0:
lstrcat(szVersionInfo,"2000");
break;
case 1:
lstrcat(szVersionInfo,"XP");
break;
case 2:
lstrcat(szVersionInfo,"Server 2003");
break;
}
break;
case 6:
switch(OS.dwMinorVersion)
{
case 0:
lstrcat(szVersionInfo,"Vista");
break;
case 1:
lstrcat(szVersionInfo,"7");
break;
}
break;
}
}
VOID SpaceSize(CHAR *RootPathName)
{
DWORD SectorsPerCluster;
DWORD BytesPerSector;
DWORD NumberOfFreeClusters;
DWORD TotalNumberOfClusters;
GetDiskFreeSpace(
RootPathName,
&SectorsPerCluster,
&BytesPerSector,
&NumberOfFreeClusters,
&TotalNumberOfClusters
);
// printf("%d, %d, %d\n", NumberOfFreeC
windows垃圾清理源代码 C/C++
最新推荐文章于 2024-07-30 17:05:03 发布
这是一个使用C/C++编写的Windows系统垃圾清理程序,包括清理预读取文件、临时文件、日志文件、索引文件、文件碎片、过期文件和备份文件的功能。程序能够遍历指定目录及其子目录,删除特定后缀的文件,并提供系统信息、磁盘空间统计等。通过输入选择,用户可以执行不同的清理任务,如查看系统信息、统计文件、清理QQ相关文件以及清理痕迹。
摘要由CSDN通过智能技术生成