HKEY hKey;
struct HKEY__*RootKey;
TCHAR *SubKey;
DWORD dwType=REG_SZ;
DWORD dwLength = 256;
TCHAR *ValueName;
LPBYTE SetContent_S;
RootKey=HKEY_CURRENT_USER;
SubKey="Control Panel\\Desktop\\WindowMetrics";
char content[256];
ValueName="Shell Icon Size";
RegOpenKeyEx(RootKey,SubKey,0,KEY_READ,&hKey);
RegQueryValueEx(hKey, ValueName, NULL, &dwType, (unsigned char *)content, &dwLength);
RegCloseKey(hKey);
RootKey=HKEY_CURRENT_USER;
SubKey="Control Panel\\Desktop\\WindowMetrics";
ValueName="Shell Icon Size";
SetContent_S=LPBYTE("31");
RegOpenKeyEx(RootKey,SubKey,0,KEY_WRITE,&hKey);
RegSetValueEx(hKey,ValueName,NULL,REG_SZ,SetContent_S,strlen((char *)SetContent_S));
RegCloseKey(hKey);
SendMessageTimeout(HWND_BROADCAST,WM_ICONERASEBKGND, SPI_SETNONCLIENTMETRICS,0,SMTO_ABORTIFHUNG,5000,NULL);
SetContent_S=LPBYTE(content);
RegOpenKeyEx(RootKey,SubKey,0,KEY_WRITE,&hKey);
RegSetValueEx(hKey,ValueName,NULL,REG_SZ,SetContent_S,strlen((char *)(SetContent_S)));
RegCloseKey(hKey);
SendMessageTimeout(HWND_BROADCAST,WM_ICONERASEBKGND, SPI_SETNONCLIENTMETRICS,0,SMTO_ABORTIFHUNG,5000,NULL);
不过一直不理解SetContent_S=LPBYTE("31")中31是什么意思,也有的人用24。
请教高手,有没有什么办法不重启explorer就可以刷新的?
5 个解决方案
#1
作 用:改变图标大小
路 径:HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics
键值名称:"Shell Icon Size"
键 值:改变其值即改变图标大小,缺省值为"32"
路 径:HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics
键值名称:"Shell Icon Size"
键 值:改变其值即改变图标大小,缺省值为"32"
#2
好像有个函数,通知系统注册表修改了
#3
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST,NULL,NULL); //1
SHChangeNotify(SHCNE_UPDATEIMAGE,SHCNF_DWORD,NULL,NULL); //2
SHChangeNotify(SHCNE_UPDATEDIR, SHCNF_PATH | SHCNF_FLUSHNOWAIT, pathname, NULL); //3
//在资源管理器中使用命令时
//1 2组合,只能刷新右侧
//2 3组合,只能刷新左侧
//1 3组合,可以两侧都刷新
我这里测试的是以上的结果,不知道对你有没有帮助
SHChangeNotify(SHCNE_UPDATEIMAGE,SHCNF_DWORD,NULL,NULL); //2
SHChangeNotify(SHCNE_UPDATEDIR, SHCNF_PATH | SHCNF_FLUSHNOWAIT, pathname, NULL); //3
//在资源管理器中使用命令时
//1 2组合,只能刷新右侧
//2 3组合,只能刷新左侧
//1 3组合,可以两侧都刷新
我这里测试的是以上的结果,不知道对你有没有帮助
#4
你贴了代码的我没这里没测试成功,呵呵
#5
解决,呵呵
#1
作 用:改变图标大小
路 径:HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics
键值名称:"Shell Icon Size"
键 值:改变其值即改变图标大小,缺省值为"32"
路 径:HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics
键值名称:"Shell Icon Size"
键 值:改变其值即改变图标大小,缺省值为"32"
#2
好像有个函数,通知系统注册表修改了
#3
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST,NULL,NULL); //1
SHChangeNotify(SHCNE_UPDATEIMAGE,SHCNF_DWORD,NULL,NULL); //2
SHChangeNotify(SHCNE_UPDATEDIR, SHCNF_PATH | SHCNF_FLUSHNOWAIT, pathname, NULL); //3
//在资源管理器中使用命令时
//1 2组合,只能刷新右侧
//2 3组合,只能刷新左侧
//1 3组合,可以两侧都刷新
我这里测试的是以上的结果,不知道对你有没有帮助
SHChangeNotify(SHCNE_UPDATEIMAGE,SHCNF_DWORD,NULL,NULL); //2
SHChangeNotify(SHCNE_UPDATEDIR, SHCNF_PATH | SHCNF_FLUSHNOWAIT, pathname, NULL); //3
//在资源管理器中使用命令时
//1 2组合,只能刷新右侧
//2 3组合,只能刷新左侧
//1 3组合,可以两侧都刷新
我这里测试的是以上的结果,不知道对你有没有帮助
#4
你贴了代码的我没这里没测试成功,呵呵
#5
解决,呵呵