Delphi - Active Desktop programozása

Active Desktop 2. rész

forráskód letöltése
Az IActiveDesktop interfészről szóló cikkünk második részében azt nézzük meg, hogy hogyan tudjuk ezt a szolgáltatást programból aktivizálni, illetve kikapcsolni, valamint az Active Desktop elemeivel ugyanezeket a műveleteket elvégezni. Ahhoz, hogy hozzáférjünk az Active Desktop beállításaihoz, csatlakoznunk kell az IActiveDesktop interfészhez. Ezt a Form OnCreate eseményénél meg is tesszük:
FActiveDesktop := CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop;
A Form-on található két CheckBox komponens. A CheckBox1-gyel az Active Desktop szolgáltatást lehet ki-be kacsolni, míg a CheckBox2-vel az Active Desktop elemeit jeleníthetjük meg, illetve rejthetjük el. Mindkét műveletet a CheckBoxClick eljárásban hajtjuk végre a komponensek Checked property-jének megfelelően:
procedure TForm1.CheckBoxClick(Sender: TObject);
var pco: TComponentsOpt;
begin
  pco.dwSize:=SizeOf(pco);
  pco.fActiveDesktop:=CheckBox1.Checked;
  pco.fEnableComponents:=CheckBox2.Checked;
  FActiveDesktop.SetDesktopItemOptions(pco, 0);
  FActiveDesktop.ApplyChanges(AD_APPLY_ALL);
end;
A beállításokat a SetDesktopItemOptions függvénnyel aktivizálhatjuk. Ennek van egy TComponentsOpt típusú paramétere, amely a következőképpen néz ki:
  TComponentsOpt = packed record
    dwSize: DWORD;
    fEnableComponents: BOOL;
    fActiveDesktop: BOOL;
  end;
A dwSize mezőben kell megadni a rekord méretét. Az fEnableComponents logikai típusú mezőben az Active Desktop elemeit engedélyezhetjük (igaz), illetve letilthatjuk (hamis). Az fActiveDesktop mezővel az egész Active Desktop szolgáltatást kapcsolhatjuk ki, illetve be.

Active Desktop cikksorozat

Active Desktop programozása - Active Desktop 1. rész

Active Desktop programozása - Active Desktop 2. rész