Как проверить, включён ли ActiveDesktop?

Материал из DRKB

Как проверить, включён ли ActiveDesktop?[править | править код]

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;


Source: Взято из http://forum.sources.ru
ID: 01819



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;


Source: http://delphiworld.narod.ru/
ID: 01820