SendMessage 刷新系统桌面

//方法1 

uses ShlObj; 
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);


//方法2
procedure
TForm1.Button1Click(Sender: TObject);
begin
    SendMessage(FindWindow('Progman', 'Program Manager'), WM_COMMAND, $A065,0);
end;


//方法3
procedure
RefreshDesktop; 
var c1: THandle;
begin
  c1:=FindWindowEx(FindWindowEx(FindWindow('Progman','Program Manager'),0,'SHELLDLL_DefView',''),0,'SysListView32','');
  PostMessage(c1,WM_KEYDOWN,VK_F5,0);
  PostMessage(c1,WM_KEYUP,VK_F5,1 shl 31);
end;





posted @ 2012-05-26 08:14  XE2011  阅读(428)  评论(0编辑  收藏  举报