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
EWeiss
(Gast)

n/a Beiträge
 
#1

AW: Ordnung muss sein (LaunchBar)

  Alt 16. Aug 2018, 05:45
Zitat:
oder mit SHGetFileInfo ein Handle zu dem richtigen Icon zu bekommen.
Ich bekomme aber das vom Installer warum auch immer.
Selber habe ich keinen Einfluss darauf wie Anwendungen ihre ShortCuts bzw.. Links erstellen.
Siehe Anhang als Beispiel.

Von der Anwendung bekomme ich das Icon vom Installer zurück geliefert.
Delphi-Quellcode:
procedure TWin32ShortCut.LoadShortCut(LnkName: WideString);
var
  FP: array[0..MAX_PATH * 2] of Char;
  pfd: TWin32FindDataW;
  showval: integer;
  psfi: TSHFileInfo;
begin
  ClearValues;
  FPersistFile.Load(PWideChar(LnkName), 0);

  FillChar(FP, Sizeof(FP), 0);
  FShellLink.GetPath(FP, Sizeof(FP), pfd, 0);
  FAppPath := String(FP);

  FShellLink.GetIDList(Fpidl);

  FillChar(FP, Sizeof(FP), 0);
  FShellLink.GetWorkingDirectory(FP, Sizeof(FP));
  FWorkDirectory := String(FP);

  FillChar(FP, Sizeof(FP), 0);
  FShellLink.GetArguments(FP, Sizeof(FP));
  FArguments := String(FP);

  FillChar(FP, Sizeof(FP), 0);
  FShellLink.GetDescription(FP, Sizeof(FP));
  FDescription := String(FP);

  FShellLink.GetShowCmd(showval);
  FShowCmd := cvtTShowType(showval);

  FShellLink.GetHotkey(FHotKey);
  HotKeyToShortCut(FHotKey, FHotKeyCtrl);


  FillChar(FP, Sizeof(FP), 0);
  FShellLink.GetIconLocation(FP, Sizeof(FP), FIconIndex); // <<<<< und zwar hier FP
  FIconPath := String(FP);

  if FIconPath = 'then
    begin
      SHGetFileInfo(PChar(FAppPath), 0, psfi, sizeof(psfi), SHGFI_ICON);
      FIcon.Handle := psfi.hIcon;
    end
  else
    FIcon.Handle := ExtractIcon(hInstance, PChar(FIconPath), FIconIndex);
end;
Zitat:
Ich hatte aber auch noch nie ein Problem damit diese Links per ShellExecute auszuführen
Es geht nicht um die Ausführung da habe ich auch kein Problem sondern um das auffinden des richtigen Pfades incl. des Icon.

gruss

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

Registriert seit: 10. Jun 2003
Ort: Berlin
9.989 Beiträge
 
Delphi 12 Athens
 
#2

AW: Ordnung muss sein (LaunchBar)

  Alt 16. Aug 2018, 05:58
Ich würde gar nicht erst GetIconLocation + ExtractIcon benutzen. SHGetFileInfo funktioniert (zumindest in allen Fällen, in denen ich es bisher genutzt und getestet habe) immer, egal was das für ein Shortcut oder was für eine andere Datei ist.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Ordnung muss sein (LaunchBar)

  Alt 16. Aug 2018, 05:59
Ich würde gar nicht erst GetIconLocation + ExtractIcon benutzen. SHGetFileInfo funktioniert (zumindest in allen Fällen, in denen ich es bisher genutzt und getestet habe) immer, egal was das für ein Shortcut oder was für eine andere Datei ist.
Du meinst als nur deine Methode?
SHGetFileInfo('C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Office\Microsoft Excel 2010.lnk', 0, ShFileInfo, SizeOf(TSHFILEINFO), SHGFI_ICON);

Hmmm.. muss ich mal testen.

EDIT:
Nein Funktioniert nicht. Siehe Pic!
Immer der Installer Pfad.

Auch wenn ich den LinkName direkt angebe
SHGetFileInfo(PChar(LnkName), 0, psfi, sizeof(psfi), SHGFI_ICON);

Bekomme ich das Installer Icon.

gruss

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

Registriert seit: 10. Jun 2003
Ort: Berlin
9.989 Beiträge
 
Delphi 12 Athens
 
#4

AW: Ordnung muss sein (LaunchBar)

  Alt 16. Aug 2018, 07:47
Auch wenn ich den LinkName direkt angebe
SHGetFileInfo(PChar(LnkName), 0, psfi, sizeof(psfi), SHGFI_ICON); Bekomme ich das Installer Icon.
Komisch. Damit liest der Windows Explorer das Icon aber selbst aus (und zeigt es ja vermutlich richtig an).
Egal bei welcher .lnk Datei ich das teste, es klappt, wenn ich die direkt dort angebe.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Ordnung muss sein (LaunchBar)

  Alt 16. Aug 2018, 08:33
Vielen Dank und Guten Morgen Emil,

ich wollte Dich nur rasch Wissen lassen das die "Cleanup" Fenster nun allesamt bei mir ihr Werk ohne Probleme verrichten!

edit
Falls ich dennoch einmal meinen Wunsch wiederholen darf, mit OnTop, da wünsche ich mir ne mini-Checkbox mittig/unten im OTTB für Quick On/Off OnTop, ohne Menu/Config/Umwege, direkt als Quicky sofort Erreichbar.
Wäre da nicht ein globaler Shortcut sinnvoller, der die Leiste schlicht nach oben holt?
Für mich, der oft Tastatur weg lässt, ist die Lösung von Emil perfekt umgesetzt.
Ein TaskBar Icon könnte ich mir noch als Alternative vorstellen.
Gruß vom KodeZwerg

Geändert von KodeZwerg (16. Aug 2018 um 08:42 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.813 Beiträge
 
Delphi 12 Athens
 
#6

AW: Ordnung muss sein (LaunchBar)

  Alt 16. Aug 2018, 10:49
Windows 10 Pro (Version 1803 [Build 17134.228]

Hab OTTB.zip in meinem Download Ordner entpackt und von dort aus ausgeführt. Funktioniert ohne Fehlermeldung und sieht gefällig aus.
Ich brauche es allerdings nicht und habs wieder geschlossen und gelöscht.

Schöne Arbeit aber!

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#7

AW: Ordnung muss sein (LaunchBar)

  Alt 16. Aug 2018, 12:59
Die LaunchBar wird beim Öffnen immer in der Mitte des Bildschirms angezeigt. Vermutlich liegt es daran, dass meine Taskleiste links positioniert ist.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: Ordnung muss sein (LaunchBar)

  Alt 16. Aug 2018, 13:29
Windows 10 Pro (Version 1803 [Build 17134.228]

Hab OTTB.zip in meinem Download Ordner entpackt und von dort aus ausgeführt. Funktioniert ohne Fehlermeldung und sieht gefällig aus.
Ich brauche es allerdings nicht und habs wieder geschlossen und gelöscht.

Schöne Arbeit aber!

Sherlock
Danke für das Feedback.

Zitat:
Die LaunchBar wird beim Öffnen immer in der Mitte des Bildschirms angezeigt. Vermutlich liegt es daran, dass meine Taskleiste links positioniert ist.
Du meinst sicherlich Zentriert auf dem Bildschirm denn mittig ist er immer.
Hmm.. wie soll ich das gegen prüfen.

Zitat:
ich wollte Dich nur rasch Wissen lassen das die "Cleanup" Fenster nun allesamt bei mir ihr Werk ohne Probleme verrichten!
Fein
Hoffe die Änderung mit dem Button ist ok das er erst sichtbar wird beim drüberfahren.
Er macht mir sonst das Gesamtbild kaputt.
Zitat:
Komisch. Damit liest der Windows Explorer das Icon aber selbst aus (und zeigt es ja vermutlich richtig an).
Egal bei welcher .lnk Datei ich das teste, es klappt, wenn ich die direkt dort angebe.
Die frage ist wie bekomme ich den Installer weg.
Ich möchte gern das Originale Icon anzeigen lassen.

Problem Dokumentiert mit Bildern. (Bei allen Windows Versionen)
Der Explorer zeigt es doch richtig an..

gruss

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

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 03:22 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