Tag/
共85个网摘 [
1 2 3 ]
下一页 |
gopid收录,使用标签:网站, 整合, sns, facebook, 网络, interent, 竞争, 开放性, 平台, open, platform, API, 产业, 趋势, 功能, 操作, 系统, Linux, windows, OS, netbook, 微软, 创业, 评论, 习惯, 硬件, 软件, ipod, iphone, 兼容, 封闭性, 三十, stupid, blog, baidu,时间:2008-10-9 16:58:56 | 相关网摘,我也收藏
现在internet上面吹起了一波开放性平台的整合风,尤其是随着SNS的带头大哥Facebook率先采用这种open platform API的方式之后而大获成功之后,全球都起而效尤,网络上大大小小的网站都宣称自己将开发一个开放性平台,让大家来使用它的平台,同时在这个平台建造自己的产品,也在这个平台上宣传这个产品…
http://hi.baidu.com/stupid77/blog/item/38f404a198e8a18d46106491.html
Joephia收录,使用标签:模拟, 系统, 消息,时间:2008-6-1 17:46:03 | 相关网摘,我也收藏
方法一:模拟右键刷新
C/C++ code
SHChangeNotify( SHCNE_ASSOCCHANGED , SHCNF_IDLIST | SHCNF_FLUSH, 0, 0);
HWND hWndProgram = ::FindWindow( _T("Progman"), NULL);
HWND hWndDefView = ::FindWindowEx( hWndProgram, NULL, _T("SHELLDLL_DefView"), NULL);
HWND hWndListView= ::FindWindowEx( hWndDefView, NULL, _T("SysListView32"), NULL);
PostMessage( hWndListView, WM_KEYDOWN, VK_RBUTTON, 0); //就算右键E键改为F5也没用
PostMessage( hWndListView, WM_KEYUP, VK_RBUTTON, 0);
PostMessage( hWndListView, WM_KEYDOWN, 'E', 0);
PostMessage( hWndListView, WM_KEYUP, 'E', 0);
结果:确实在刷新,但仍无法反映扩展名的显隐,而真正的鼠标右键再点E就可以,不知道为什么
方法二:
C/C++ code
SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,0);
SendMessage(HWND_BROADCAST,WM_USERCHANGED,0,0);
结果:无法反映扩展名的显隐
方法三:
C/C++ code
HWND hCurWnd = NULL;
TCHAR szClassName[MAX_PATH] = {0};
hCurWnd = GetTopWindow(NULL);
while(IsWindow(hCurWnd)){
GetClassName(hCurWnd, szClassName, MAX_PATH);
if( _tcscmp( szClassName, _T("CabinetWClass") ) == 0 || _tcscmp(szClassName, _T("ExploreWClass") )== 0 ){
PostMessage(hCurWnd, WM_COMMAND, 41504, 0);
}
hCurWnd = GetNextWindow(hCurWnd, GW_HWNDNEXT);
continue;
}
结果:无法反映扩展名的显隐
方法四:
C/C++ code
DWORD dwResult;
LPCTSTR lpData = _T( "Policy ");
SendMessageTimeout(HWND_BROADCAST,WM_SETTINGCHANGE,NULL,(LPARAM)(LPTSTR)lpData,SMTO_NORMAL,1000,&dwResult);
SHChangeNotify(SHCNE_ATTRIBUTES|SHCNE_UPDATEDIR|SHCNE_UPDATEITEM|SHCNE_GLOBALEVENTS|SHCNE_DISKEVENTS, SHCNF_IDLIST|SHCNF_FLUSHNOWAIT, 0, 0);//这里面怎么换参数都没用
结果:无法反映扩展名的显隐
以上各方法结合SystemParametersInfo(SPI_SETDESKPATTERN,0,0,SPIF_SENDCHANGE)、或是更改
HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\CONTROL\UPDATE
键值也都没用
不明白怎么鼠标右键刷新可以,按F5或是模拟出来的就不行。以上代码能够解决下列问题:
一:立刻显示文件的改变,比如新建的文件或文件名的改变
二:图标的变化,例如使用了新图标或更改了图标的大小
三:文件的关联,比如你自己注册到系统一个新的文件类型,新类型的图标、文件类型都能够正确、立即的显示
唯独更改扩展名的显隐后视图并不更改。
C/C++ code
void fanzhuanHideFileExt(){
HKEY hk;
DWORD dwDisp;
static DWORD dwReg=0;
if (RegCreateKeyEx(HKEY_CURRENT_USER, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced"),
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_WRITE, NULL, &hk, &dwDisp)){
printf("\nCould not open the key.");
return;
}
if (RegSetValueEx(hk, // subkey handle
TEXT("HideFileExt"), // value name
0, // must be zero
REG_DWORD, // value type
(LPBYTE)(&dwReg), // pointer to value data
sizeof(DWORD))){
printf("\nCould not set the key value");
RegCloseKey(hk);
return;
}
RegCloseKey(hk);
if(dwReg==0) dwReg=1;
else dwReg=0;
}
http://topic.csdn.net/u/20080601/17/358ca386-a003-4644-8450-9591d4927536.html
共85个网摘 [
1 2 3 ]
下一页