Delphi-PRAXiS
Seite 30 von 32   « Erste     20282930 3132      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Ordnung muss sein (LaunchBar) (https://www.delphipraxis.net/192767-ordnung-muss-sein-launchbar.html)

KodeZwerg 18. Aug 2018 20:41

AW: Ordnung muss sein (LaunchBar)
 
Mir juckts inne Finger, hab gelesen dass das IExtractIcon über PIDL arbeitet, also direkt Windows-Cache mitbenutzt um nicht mal nen Icon nachzuladen, sobald ich da was zustande gebracht habe Berichte ich was. In der Hoffnung das der dann das Desktop-Symbol nimmt werde ich testen testen testen, bis später....!

EWeiss 18. Aug 2018 20:49

AW: Ordnung muss sein (LaunchBar)
 
Zitat:

Zitat von KodeZwerg (Beitrag 1411052)
Mir juckts inne Finger, hab gelesen dass das IExtractIcon über PIDL arbeitet, also direkt Windows-Cache mitbenutzt um nicht mal nen Icon nachzuladen, sobald ich da was zustande gebracht habe Berichte ich was. In der Hoffnung das der dann das Desktop-Symbol nimmt werde ich testen testen testen, bis später....!

Das ist mir klar schließlich verwende ich diese Art des auslesen in meiner TAudioVolumen Anwendung.
Nur es hat nichts mit dem auslesen der Icons über Verknüpfungen zu tun.
Aber gut du kannst natürlich weitertesten. :)

gruss

KodeZwerg 18. Aug 2018 20:58

AW: Ordnung muss sein (LaunchBar)
 
Wenns über PIDL läuft, ist doch Icon bereits vorgegeben, das was Shell dafür benutzt. In Bezug auf .lnk sollte eigentlich das Icon raus kommen was Dir der Desktop/Explorer darstellt. Vielleicht versteh ich da auch gerade mal wieder was falsch, das werden meine Tests zeigen, guter Tipp mit TAudioVolume, da schau ich mal nach wie Du es im Einsatz hast und nehme es eventuell später als Vorlage.
Aber erst mal selbst nach Windows-Api nachprogrammieren damit ich weiß wie es funktioniert.

KodeZwerg 18. Aug 2018 21:41

AW: Ordnung muss sein (LaunchBar)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Da habe ich schön daneben gelegen, Schade eigentlich. Ich bekomme wieder nur das Application System Icon dargestellt für 64bit \Program Files\

Andererseits liefert es mir die besseren individuellen Bilder, ich glaube ich bleibe jetzt dabei, muss nur noch was mit Transparenz machen, siehe hier Anhang 49788

edit
Mein nächster Versuch gilt es PIDL abzufragen um das Icon zu holen, mal sehen ob ich damit auch scheitere.

EWeiss 19. Aug 2018 06:05

AW: Ordnung muss sein (LaunchBar)
 
Du must dich darum nicht mehr kümmern..
Bin mit der x64 Version dran da funktioniert es mit den Icons.
So wie ich sagte du kannst mit einer 32Bit Anwendung im Pfad Program Files nicht rumpfuschen.
Deshalb bekommst du auch die Icons nicht.

Hier ein Pic OTTB64 oben und OTTB unten.
Ich bin dran habe aber einiges an Problemen zu beseitigen. (Kann dauern)
Siehe DVDMaker.exe erste Icon auf der linken Seite.

gruss

KodeZwerg 19. Aug 2018 09:53

AW: Ordnung muss sein (LaunchBar)
 
Zitat:

Zitat von EWeiss (Beitrag 1411068)
Du must dich darum nicht mehr kümmern..

Ich habe ein Eigeninteresse daran, da mir dieser Umstand vorher nie auffiel.
Zitat:

Zitat von EWeiss (Beitrag 1411068)
Bin mit der x64 Version dran da funktioniert es mit den Icons.

:thumb:
Zitat:

Zitat von EWeiss (Beitrag 1411068)
So wie ich sagte du kannst mit einer 32Bit Anwendung im Pfad Program Files nicht rumpfuschen.
Deshalb bekommst du auch die Icons nicht.

Ich bekomme alle Icons, habe Dir ja bereits geschrieben wie. Ich bekomme sie nur nicht über den üblichen Weg. :wink:

Gruß

EWeiss 19. Aug 2018 10:19

AW: Ordnung muss sein (LaunchBar)
 
Zitat:

Ich bekomme alle Icons, habe Dir ja bereits geschrieben wie. Ich bekomme sie nur nicht über den üblichen Weg.
Ach.. Ich rede von Verknüpfungen denn darum geht es ja hier.
Aus den Exe Dateien bekomme ich sie auch alle.

Oder meinst du ich mache mir die Arbeit mit einer 64BIt Anwendung umsonst?
Nur deshalb weil es auf normalem Wege halt nicht geht.

gruss

EWeiss 20. Aug 2018 21:23

AW: Ordnung muss sein (LaunchBar)
 
Zum Fortschritt.
Langsam komme ich weiter, musste meine GDI+ Unit komplett umschreiben und dementsprechend auch alle Funktionen innerhalb meiner Lib.
Es funktioniert einwandfrei mit 32Bit aber 64Bit leider nicht!

Es hat damit zu tun..
bsp. Wenn ich unter 32Bit einer Funktion ein Cardinal übergebe und diese in 64Bit nicht kompatibel ist dann kracht es.
Deshalb muss ich alles umschreiben damit es auf beiden Plattformen funktioniert.

GDIPlus Image war Cardinal ist nun Pointer usw..
Es läuft soweit nur mein Menu noch nicht.. ;) habe da wohl noch ein\zwei Funktionen unter GDI+ die ich noch korrekt umlegen muss.
Das dauert seine zeit.

Kracht immer bei
Delphi-Quellcode:
// Gibt die höhe und weite vom GDIPLUS Image zurück.
procedure TSkinEngine.GetImageSize(Img: Pointer; var imgW, imgH: UINT);
begin
  if Assigned(Img) then
  begin
    GdipCheck(GdipGetImageWidth(Img, imgW));
    GdipCheck(GdipGetImageHeight(Img, imgH));
  end;
end;
Muss aber nichts bedeuten denn die Typen sind korrekt habe sie angepasst.
Irgendwo dazwischen passiert noch was das sich nicht so leicht debuggen lässt.

Test im Anhang werde ich löschen wenn die Final fertig ist inklusive fix für das Menu (GDI+).
Zumindest sollten jetzt deine Icons aus "Program Files" richtig angezeigt werden.
Aber wundere dich nicht die Dateien sind nun um ein 10faches größer.


PS:
Die 32Bit läuft mit den geänderten Typen für 64Bit ohne Probleme schwer den Fehler zu lokalisieren.
Ich finde keine Informationen darüber was bei der GDI+ 64Bit für Typen übergeben werden müssen. grrrrrr..
Es gibt auch keine 64Bit API für GDI+ von Delphi zumindest finde ich keine.

gruss

KodeZwerg 21. Aug 2018 08:08

AW: Ordnung muss sein (LaunchBar)
 
Kurzes Mini-Feedback:
Mit deinem 64bit build lädt er Icon fast korrekt, warum nur fast fragst Du Dich? Weil irgenwie in Deiner Methode was merkwürdig läuft.

Ich habe folgendes gemacht:
64bit 7zip installiert
in \Program Files\7zip rein und zu 7zG.exe eine Verknüpfung auf Desktop abgelegt.
32bit Ottb = System Application Icon
64bit Ottb = zeigt brav 7zG.exe Icon an
32bit Delphi über
Delphi-Quellcode:
SHGetFileInfo(PChar(IncludeTrailingPathDelimiter(Path) + finddata.cFilename), 0, fi, sizeof(TSHFileInfo), SHGFI_SYSICONINDEX or SHGFI_TYPENAME or SHGFI_ICON)
= System Application Icon

jetzt das merkwürdige
in \Program Files\7zip rein und 7zG.exe eine Verknüpfung auf Desktop abgelegt aber dieses mal mit 2. Icon von 7zFM.exe
32bit Ottb = System Application Icon
64bit Ottb = zeigt Icon von 7zG.exe, sollte aber das 2. von 7zFM.exe sein
32bit Delphi über
Delphi-Quellcode:
SHGetFileInfo(PChar(IncludeTrailingPathDelimiter(Path) + finddata.cFilename), 0, fi, sizeof(TSHFileInfo), SHGFI_SYSICONINDEX or SHGFI_TYPENAME or SHGFI_ICON)
= zeigt das 2. aus 7zFM.exe

Hab Dein 64bit noch nicht weiter getestet, wollte Dich nur das obige Wissen lassen.

Gruß

EWeiss 21. Aug 2018 08:18

AW: Ordnung muss sein (LaunchBar)
 
Zitat:

64bit Ottb = zeigt Icon von 7zG.exe, sollte aber das 2. von 7zFM.exe sein
Ich nehme bisher keine Rücksicht auf den IconIndex der in der Verknüpfung festgelegt ist.
Es wird immer das 1 (Index 0) ICON_LARGE genommen. Seltsam ist das nicht sondern so programmiert.

Aber wenn nötig kann man es später noch ändern.
Der 64Bit Code ist bis auf die Typen gleich da hat sich nichts geändert.

Zitat:

32bit Delphi über
Ist nicht OTTB so denke ich das du es nicht vergleichen kannst ;)
Danke trotzdem für die Meldung.

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:07 Uhr.
Seite 30 von 32   « Erste     20282930 3132      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz