AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Ordnung muss sein (LaunchBar)

Ordnung muss sein (LaunchBar)

Ein Thema von EWeiss · begonnen am 17. Mai 2017 · letzter Beitrag vom 14. Nov 2021
Antwort Antwort
Seite 30 von 32   « Erste     20282930 3132   
EWeiss
Projekt entfernt..

Geändert von EWeiss (24. Jul 2019 um 04:47 Uhr)
 
Benutzerbild von KodeZwerg
KodeZwerg

 
Delphi 10.3 Rio
 
#291
  Alt 18. Aug 2018, 20:41
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....!
  Mit Zitat antworten Zitat
EWeiss
 
#292
  Alt 18. Aug 2018, 20:49
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
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

 
Delphi 10.3 Rio
 
#293
  Alt 18. Aug 2018, 20:58
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.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

 
Delphi 10.3 Rio
 
#294
  Alt 18. Aug 2018, 21:41
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 screenshot-18_08.jpg

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

Geändert von KodeZwerg (18. Aug 2018 um 21:48 Uhr)
  Mit Zitat antworten Zitat
EWeiss
 
#295
  Alt 19. Aug 2018, 06:05
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

Geändert von EWeiss (11. Jul 2019 um 15:53 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

 
Delphi 10.3 Rio
 
#296
  Alt 19. Aug 2018, 09:53
Du must dich darum nicht mehr kümmern..
Ich habe ein Eigeninteresse daran, da mir dieser Umstand vorher nie auffiel.
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.
Ich bekomme alle Icons, habe Dir ja bereits geschrieben wie. Ich bekomme sie nur nicht über den üblichen Weg.

Gruß
  Mit Zitat antworten Zitat
EWeiss
 
#297
  Alt 19. Aug 2018, 10:19
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

Geändert von EWeiss (29. Apr 2019 um 02:40 Uhr)
  Mit Zitat antworten Zitat
EWeiss
 
#298
  Alt 20. Aug 2018, 21:23
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

Geändert von EWeiss (22. Aug 2018 um 04:42 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

 
Delphi 10.3 Rio
 
#299
  Alt 21. Aug 2018, 08:08
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 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 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ß
  Mit Zitat antworten Zitat
EWeiss
 
#300
  Alt 21. Aug 2018, 08:18
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
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf