Mit dieser Funktion kann man den Titel vom Arbeitsplatz in der jeweiligen Sprache bekommen.
Das funktioniert auch mit anderen Namen, wie Netzwerk, Systemsteuerung, etc., wenn man die entsprechenden GUIDs dafür einsetzt.
Hinweis: Füge
ShellAPI zur
uses Liste hinzu
Name:
Delphi-Quellcode:
function GetShellDescription(const Name:String):String;
var FileInfo:TSHFileInfo;
Flags:Integer;
begin
ZeroMemory(@FileInfo, SizeOf(FileInfo));
Flags:=SHGFI_DISPLAYNAME;
SHGetFileInfo(PChar(Name), 0, FileInfo, SizeOf(FileInfo), Flags);
Result:=FileInfo.szDisplayName;
end;
Beispiel:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
Caption:=GetShellDescription('::{20D04FE0-3AEA-1069-A2D8-08002B30309D}');
end;
Icon:
Delphi-Quellcode:
function GetShellIcon(const Name:String; const Large, Open:Boolean):HIcon;
var FileInfo:TSHFileInfo;
Flags:Integer;
begin
ZeroMemory(@FileInfo, SizeOf(FileInfo));
Flags:=SHGFI_ICON;
If Open then Flags:=Flags or SHGFI_OPENICON;
If Large then Flags:=Flags or SHGFI_LARGEICON else
Flags:=Flags or SHGFI_SMALLICON;
SHGetFileInfo(PChar(Name), 0, FileInfo, SizeOf(FileInfo), Flags);
Result:=FileInfo.hIcon;
end;
Beispiel:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.Icon.Handle:=GetShellIcon('::{20D04FE0-3AEA-1069-A2D8-08002B30309D}', True, False);
end;
Ein paar GUIDs:
Arbeitsplatz:
::{20D04FE0-3AEA-1069-A2D8-08002B30309D}
Systemsteuerung:
::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}
Systemsteuerung - Drucker und Fax:
::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{2227A280-3AEA-1069-A2DE-08002B30309D}
Systemsteuerung - Geplante Tasks:
::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{D6277990-4C6A-11CF-8D87-00AA0060F5BF}
Systemsteuerung - Netzwerkverbindungen:
::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{7007ACC7-3202-11D1-AAD2-00805FC1270E}
Systemsteuerung - Scanner und Kameras:
::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{E211B736-43FD-11D1-9EFB-0000F8757FCD}
Netzwerk:
::{208D2C60-3AEA-1069-A2D7-08002B30309D}
Papierkorb:
::{645FF040-5081-101B-9F08-00AA002F954E}
Suche:
::{1f4de370-d627-11d1-ba4f-00a0c91eedba}
Wenn wer weitere weiß, immer her damit
Das ganze funktioniert auch mit Pfaden und Dateien: GetShellIcon('C:\'), GetShellDescription('C:\')
Edit: Arbeistplatz im Titel korrigiert
[edit=CalganX] Mfg, CalganX[/edit]