Как проверить, включён ли 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

http://delphiworld.narod.ru/

DelphiWorld 6.0