[C++] 纯文本查看 复制代码
#include <iostream>
#include <string>
#include <windows.h>
int main(int argc, char *argv[])
{
if(argc != 3) // 判断参数个数,若小于 3 则输出提示
{
printf("\t\t**************************************\n");
printf("\t\t\tSetDirIcon By Hoy0a1d.\n");
printf("\t\t\tUsage:%s DirPath IconPath\n", argv[0]);
printf("\t\t**************************************\n");
}
else
{
// 判断需要设置的文件夹是否存在
if(GetFileAttributes(argv[1]) != INVALID_FILE_ATTRIBUTES)
{
// 判断 ico 文件是否存在
if(GetFileAttributes(argv[2]) != INVALID_FILE_ATTRIBUTES)
{
char iniPath[MAX_PATH] = "";
char icoPath[MAX_PATH] = "";
// 在需要设置的文件夹下新建 desktop.ini
strcat(iniPath, argv[1]);
strcat(iniPath, "\\desktop.ini");
// 将 ico 文件复制到文件夹下命名为 icon.ico
strcat(icoPath, argv[1]);
strcat(icoPath, "\\icon.ico");
// 复制文件,覆盖已有
CopyFile(argv[2], icoPath, FALSE);
// 设置 icon.ico 文件属性为隐藏
SetFileAttributes(icoPath, FILE_ATTRIBUTE_HIDDEN);
/* BOOL WritePrivateProfileString(
LPCTSTR lpAppName, // INI文件中的一个字段名[节名]
LPCTSTR lpKeyName, // lpAppName 下的一个键名
LPCTSTR lpString, // 键值
LPCTSTR lpFileName // INI文件的路径
); */
if(WritePrivateProfileString(".ShellClassInfo", "IconResource", "icon.ico", iniPath) == true)
{
// 设置 desktop.ini 文件属性为系统+隐藏
SetFileAttributes(iniPath, FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
printf("Folder icon setting success!\n");
}
else
printf("Folder icon setting failed!\n");
}
else
printf("ICO files do not exist.\n");
}
else
printf("Folders do not exist.\n");
}
return 0;
}
|