RT,在注册表中更改完相应的键值之后,双击桌面上的某类文件(如.htm)时已经能用特定的程序打开(如Chrome),但是桌面上.htm文件的图标依然是ie的图标而非Chrome的。 我试过使用SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL);和SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, SPI_SETNONCLIENTMETRICS,NULL);但是都不管用,可如果我重启explorer的话,图标能够刷新过来。 请问有什么方法能及时把桌面上的图标缓存给刷新过来么,谢啦。
http://louissgd.blogbus.com/logs/48685499.html
//////////////////////
//Rebuild Icon Cache//
//////////////////////
int Iconw=GetSystemMetrics(SM_CXICON);
HKEY hKey;
RegOpenKeyEx(HKEY_CURRENT_USER, "Control Panel\\Desktop\\WindowMetrics ",0,KEY_ALL_ACCESS,&hKey);
char buff[20];
itoa(Iconw-1,buff,10);
RegSetValueEx(hKey, "Shell Icon Size ",0,REG_SZ,(unsigned char *)buff,sizeof(buff));
SendMessage(HWND_BROADCAST,WM_WININICHANGE,0,0);
itoa(Iconw,buff,10);
RegSetValueEx(hKey, "Shell Icon Size ",0,REG_SZ,(unsigned char *)buff,sizeof(buff));
SendMessage(HWND_BROADCAST,WM_WININICHANGE,0,0);