...show/hide the ActiveDesktop?

Author: Thomas Stutz

Category: System

uses
  
ComObj, ShlObj, ActiveX;

procedure EnableActiveDesktop(bValue: Boolean);
const
  
CLSID_ActiveDesktop: TGUID = (D1: $75048700; D2: $EF1F; D3: $11D0;
    D4: ($98, $88, $00, $60, $97, $DE, $AC, $F9));
var
  
MyObject: IUnknown;
  ActiveDesk: IActiveDesktop;
  twpoComponentOpt: TComponentsOpt;
begin
  
MyObject := CreateComObject(CLSID_ActiveDesktop);
  ActiveDesk := MyObject as IActiveDesktop;
  with twpoComponentOpt do
  begin
    
ZeroMemory(@twpoComponentOpt, SizeOf(TComponentsOpt));
    dwSize := SizeOf(twpoComponentOpt);
    fEnableComponents := bValue;
    // fActiveDesktop := True;
  
end;
  ActiveDesk.SetDesktopItemOptions(twpoComponentOpt, 0);
  ActiveDesk.ApplyChanges(AD_APPLY_ALL);
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base