//兼容win7 vista xp 的桌面嵌入代码(delphi) procedure findDesktopWnd; Function MyEnumWindowProc(wnd: HWND; LPARAM: LPARAM): Boolean; stdcall; var sndWnd, targetWnd: Cardinal; begin sndWnd := FindWindowEx(wnd, 0, 'SHELLDLL_DefView', 0); if sndWnd = 0 then begin Result := true; Exit; end; targetWnd := FindWindowEx(sndWnd, 0, 'SysListView32', 'FolderView'); if targetWnd = 0 then begin Result := true; Exit; end; deskTopHandel := wnd; Result := false; end; begin EnumWindows(@MyEnumWindowProc, 0); end;
uses shellapi; ShellExecute(handle, nil, 'c:\windows\...\Internet Explorer\Quick Launch\显示桌面.scf ', nil, nil, sw_shownormal);
最简单的:PostMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MINIMIZE, 0);
//同时按下WINDOW键和M键能最小化所有窗口 91 window key 77 M
keybd_event(91, 0, 0, 0);
keybd_event(77, 0, 0, 0);
keybd_event(77, 0, KEYEVENTF_KEYUP, 0);
keybd_event(91, 0, KEYEVENTF_KEYUP, 0);
其实正宗的解决方法是发送一个TaggleDesktop的DDE消息给Explorer.exe。
抄袭自:
http://topic.csdn.net/t/20010417/23/99323.html
var vShellApplication: OleVariant; begin vShellApplication := CreateOleObject('Shell.Application'); vShellApplication.ToggleDesktop; end;