Как проверить, включён ли ActiveDesktop? |
Previous Top Next |
Code: |
function IsActiveDeskTopOn: Boolean; var h: hWnd; begin h := FindWindow('Progman', nil); h := FindWindowEx(h, 0, 'SHELLDLL_DefView', nil); h := FindWindowEx(h, 0, 'Internet Explorer_Server', nil); Result := h <> 0; end; |
©Drkb::01819
Взято из http://forum.sources.ru
Code: |
uses ComObj, ShlObj, ActiveX;
// Check if Active Desktop is enabled (2) function IsActiveDesktopEnable: Boolean; const CLSID_ActiveDesktop: TGUID = '{75048700-EF1F-11D0-9888-006097DEACF9}'; var ActiveDesk: IActiveDesktop; ComponentsOpt: TComponentsOpt; hr: HRESULT; dwReserved: DWORD; begin ZeroMemory(@ComponentsOpt, SizeOf(TComponentsOpt)); ComponentsOpt.dwSize := SizeOf(TComponentsOpt); hr := CoCreateInstance(CLSID_ActiveDesktop, nil, CLSCTX_INPROC_SERVER, CLSID_ActiveDesktop, ActiveDesk); if SUCCEEDED(hr) then begin hr := ActiveDesk.GetDesktopItemOptions(ComponentsOpt, dwReserved); // ActiveDesk._Release; end; Result := ComponentsOpt.fActiveDesktop; end; |
©Drkb::01820
DelphiWorld 6.0