1 #include <iostream> 2 #include <string> 3 #include <windows.h> 4 5 using namespace std; 6 7 int main(int argc, char *argv[]) 8 { 9 if(argc != 3) // 判断参数个数,若小于 3 则输出提示 10 { 11 printf("\t\t**************************************\n"); 12 printf("\t\t\tSetDirIcon By Hoy0a1d.\n"); 13 printf("\t\t\tUsage:%s DirPath IconPath\n", argv[0]); 14 printf("\t\t**************************************\n"); 15 } 16 else 17 { 18 // 判断需要设置的文件夹是否存在 19 if(GetFileAttributes(argv[1]) != INVALID_FILE_ATTRIBUTES) 20 { 21 // 判断 ico 文件是否存在 22 if(GetFileAttributes(argv[2]) != INVALID_FILE_ATTRIBUTES) 23 { 24 char iniPath[MAX_PATH] = ""; 25 char icoPath[MAX_PATH] = ""; 26 // 在需要设置的文件夹下新建 desktop.ini 27 strcat(iniPath, argv[1]); 28 strcat(iniPath, "\\desktop.ini"); 29 // 将 ico 文件复制到文件夹下命名为 icon.ico 30 strcat(icoPath, argv[1]); 31 strcat(icoPath, "\\icon.ico"); 32 // 复制文件,覆盖已有 33 CopyFile(argv[2], icoPath, FALSE); 34 // 设置 icon.ico 文件属性为隐藏 35 SetFileAttributes(icoPath, FILE_ATTRIBUTE_HIDDEN); 36 /* BOOL WritePrivateProfileString( 37 LPCTSTR lpAppName, // INI文件中的一个字段名[节名] 38 LPCTSTR lpKeyName, // lpAppName 下的一个键名 39 LPCTSTR lpString, // 键值 40 LPCTSTR lpFileName // INI文件的路径 41 ); */ 42 if(WritePrivateProfileString(".ShellClassInfo", "IconResource", "icon.ico", iniPath) == true) 43 { 44 // 设置 desktop.ini 文件属性为系统+隐藏 45 SetFileAttributes(iniPath, FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN); 46 printf("Folder icon setting success!\n"); 47 } 48 else 49 printf("Folder icon setting failed!\n"); 50 } 51 else 52 printf("ICO files do not exist.\n"); 53 } 54 else 55 printf("Folders do not exist.\n"); 56 } 57 return 0; 58 }