DruckenMister WongFacebook

Icons auf dem Desktop anordnen

System Win9x, WinNT, Win2000, WinXP, Vista, Win7
Ab Delphi-Version Delphi 1
Letzte Änderung 28.09.2010

Über dem Windows-Desktop liegt eine ListView-Komponente. Man benötigt also einfach ein Handle auf diese ListView. Beispiel:


function GetDesktopListViewHandle: THandle;
var S: String;
begin
  Result := FindWindow('ProgMan', nil);
  Result := GetWindow(Result, GW_CHILD);
  Result := GetWindow(Result, GW_CHILD);
  SetLength(S, 40);
  GetClassName(Result, PChar(S), 39);
  if PChar(S)<>'SysListView32' then Result := 0;
end;
 

Wenn man ein Handle hat, kann man die ListView-bezogenen API-Funktionen in der Unit CommCtrl verwenden, um den Desktop zu manipulieren. Siehe die LVM_xxxx-Botschaften in der Win32-Onlinehilfe.Folgender Code richtet beispielsweise die Desktop-Icons an der linken Seite des Windows-Desktops aus:


  SendMessage(GetDesktopListViewHandle, LVM_ARRANGE, LVA_ALIGNLEFT, 0);