如何刷新我的电脑

diclover 2008-07-07 10:55:38
请教各位达人:
使用InvalidateRect(0,NULL,0)可以刷新桌面,那么如何刷新我的电脑:打开我的电脑后在C盘、D盘...那个界面右键可以刷新,我现在要用软件来实现这一功能,该如何做
...全文
245 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
diclover 2008-07-08
  • 打赏
  • 举报
回复
现在可以了,谢谢了
cnzdgs 2008-07-07
  • 打赏
  • 举报
回复
用FindWindow查找窗口,用InvalidateRect刷新,不过这样是刷新界面显示,不是刷新内容。可以用SetInput或keybd_event模拟F5键来刷新,也可以试试PostMessage给窗口发F5键的WM_KEYDOWN、WM_KEYUP消息。
sunyim 2008-07-07
  • 打赏
  • 举报
回复
刷新客户区
长尾巴的悟空 2008-07-07
  • 打赏
  • 举报
回复
刷新的大小为整个桌面!
cnzdgs 2008-07-07
  • 打赏
  • 举报
回复
是“CabinetWClass”,你少了一个字母“t”。
diclover 2008-07-07
  • 打赏
  • 举报
回复
谢谢cnzdgs ,但应该不是这样的问题。我用这样的方法就可以:
HWND hWnd=::FindWindow(NULL,"我的电脑");
::PostMessage(hWnd,WM_KEYDOWN, VK_F5, 0X003C0001);
::PostMessage(hWnd,WM_KEYUP, VK_F5, 0XC03C0001);
但是这样用有局限性,如果我的电脑不是这样命名的,那么还是会失败,使用Spy++工具发现很多窗体的类名都是CabineWClass,我的电脑的类名使用哪一个呢?
cnzdgs 2008-07-07
  • 打赏
  • 举报
回复
写错字了,更正一下:
或者你的程序不在当前桌面?
cnzdgs 2008-07-07
  • 打赏
  • 举报
回复
不会是没开“我的电脑”窗口吧?获得你的程序不在当前桌面?
diclover 2008-07-07
  • 打赏
  • 举报
回复
cnzdgs 的方法应该是可行的,但我模拟后没有任何反应,我是这样实现的:
HWND hWnd=::FindWindow("CabineWClass",NULL);
::PostMessage(hWnd,WM_KEYDOWN, VK_F5, 0X003C0001);
::PostMessage(hWnd,WM_KEYUP, VK_F5, 0XC03C0001);
单步跟的时候发现 hWnd获取失败,为:NULL。请问问题出在哪,该如何实现这一功能?

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧