![]() |
Programm-Icon anhand des Programm-Pfades rausfinden
Hallo,
wie kann ich ein Programm-Icon anhand der Programm-Pfades rausfinden? |
Re: Programm-Icon anhand des Programm-Pfades rausfinden
Meinst du anhand des Dateinamens?
|
Re: Programm-Icon anhand des Programm-Pfades rausfinden
ja genau
|
Re: Programm-Icon anhand des Programm-Pfades rausfinden
Ermittle die Endung mit ExtractFilePath() und ermittle dann das Icon dafür.
|
Re: Programm-Icon anhand des Programm-Pfades rausfinden
du hast mich falsch verstanden.
Nehmen wir mal an ich hab einen folgenden Pfad mit dateinamen: "C:\Programme\Microsoft Office\WinWord.exe". Nun würd ich gerne das Icon dieser Exe (die aber nicht geladen ist) auslesen. Nämlich das selbe, was im Windows-Explorer als Icon zu sehen ist. |
Re: Programm-Icon anhand des Programm-Pfades rausfinden
Das Icon steckt ja in der Ressource dieser Datei. Ohne sie zu laden wird es nicht möglich sein es auszulesen.
|
Re: Programm-Icon anhand des Programm-Pfades rausfinden
Vielleicht so ...
Delphi-Quellcode:
Dieses Beispiel holt sich das Icon von NotePad und zeichnet es auf die Form:
uses ShellApi; procedure TForm1.Button1Click(Sender:TObject); var IconIndex : Word; h : hIcon; begin IconIndex:=0; h:=ExtractAssociatedIcon(HInstance, 'C:\WINDOWS\NOTEPAD.EXE', IconIndex); DrawIcon(Form1.Canvas.Handle,10,10,h); end; |
Re: Programm-Icon anhand des Programm-Pfades rausfinden
dein code erzeugt ne accessviolation
|
Re: Programm-Icon anhand des Programm-Pfades rausfinden
hmmm?????????????????? - ich schau mal, was bei mir passiert
|
Re: Programm-Icon anhand des Programm-Pfades rausfinden
Sorry,
bei mir wird zwar keine Zugriffsverletzung erzeugt, aber das Icon wird auch nicht gefunden. Mit folgender Zeile funktioniert es (egal ob Notepad gerade aktiv ist oder nicht):
Delphi-Quellcode:
Sorry, da muss ich mal meine Schnipsel-Kiste aufräumen
//..
h:=ExtractIcon(0,'C:\WINDOWS\NOTEPAD.EXE',IconIndex); //.. |
Re: Programm-Icon anhand des Programm-Pfades rausfinden
Wunderbar!
Danke hat funktioniert. Hier nochmal der komplette Code:
Delphi-Quellcode:
(Ich hab ihr noch eine String-Variable geschenkt)
uses ShellApi;
procedure TForm1.Button1Click(Sender:TObject); var IconIndex : Word; h : hIcon; S : String; begin IconIndex := 0; S := 'C:\Program Files\Microsoft Office\Office12\WinWord.exe'; h := ExtractIcon(0, PAnsiChar(S), IconIndex); DrawIcon(Form1.Canvas.Handle, 10, 10, h); end; |
Re: Programm-Icon anhand des Programm-Pfades rausfinden
Prima! Dann noch viel Spaß damit :-D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz