AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi *.Lnk Verknüpfungen funktionieren nicht.
Thema durchsuchen
Ansicht
Themen-Optionen

*.Lnk Verknüpfungen funktionieren nicht.

Ein Thema von EWeiss · begonnen am 13. Mai 2017 · letzter Beitrag vom 17. Mai 2017
Antwort Antwort
Seite 4 von 8   « Erste     234 56     Letzte »    
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#31

AW: *.Lnk Verknüpfungen funktionieren nicht.

  Alt 13. Mai 2017, 17:46
Woher willst du das so genau wissen wann ich das Icon einlese?
Ich bezog mich auf das Einlesen durchs System, um das Icon für die Verknüpfung darstellen zu können. Aber ja, es könnte sein, dass das durch deinen Code ausgelesene Icon ebenfalls aus dem Iconcache stammt; ich hab kein tiefergehendes Wissen, wie Windows diesbzgl. arbeitet.

Zitat:
Es gibt *.URL, *.lnk und User definierte Ausführbare Icons auf der Bar.
Für euch außenstehende ist das kein Problem... ja mach mal eben. Aber ihr kennt den Aufwand nicht der betrieben werden muss
damit das nachher auch alles seine Richtigkeit hat.
Nun, allein aus dem OP und den ersten paar Posts kann man diese Details nicht ablesen. Insofern kann daraus keiner den Aufwand abschätzen.

Grüße
Dalai
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#32

AW: *.Lnk Verknüpfungen funktionieren nicht.

  Alt 13. Mai 2017, 17:53
Ach egal

Es funktioniert ja jetzt mit eurer Idee.
Danke!

Hoffe die Herzchen sind dank genug... LOL (wenn ihr sie dann anschaut.)
Zitat:
Ich bezog mich auf das Einlesen durchs System, um das Icon für die Verknüpfung darstellen zu können.
Ach so..
Ich habe die lade Routine der Icons jetzt nicht verändert diese werden immer noch aus dem Target Pfad gelesen (direkt aus der EXE)
Sieht zwar blöd aus da manche hier das Package Icon abgelegt haben aber was soll's.

gruss

Geändert von EWeiss (13. Mai 2017 um 17:55 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#33

AW: *.Lnk Verknüpfungen funktionieren nicht.

  Alt 15. Mai 2017, 05:10
Zitat:
Die Notation mit "@Path@" ist mir nicht bekannt und erscheint mir suspekt.
Nur nochmal zur Auffrischung und eine kleine Erklärung.

Im Grunde genommen muss man das als Platzhalter verstehen klar hätte ich auch "Hänschen" benennen können.
Im Code prüfe ich ob der Anwendungspfad der gleiche ist wie der Arbeitspfad wenn das zutrifft wird der Arbeitspfad
durch diese Variable ersetzt um nicht ellenlange Strings in die Konfigurationsdatei zu schreiben.

bsp:
@PATH@UserIcon\48x48\Prompt.png := Der Anwendungspfad + der Ordner wo sich die Icons befinden.
Ich denke auf diese Art einen Platzhalter zu definieren ist durchaus angebracht.

Oder der Anwendungspfad zu meiner Anwendung.

Jetzt!
Zitat:
"c:\program files (x86)\microsoft visual studio\vb98\sourcemein\skaero projekte\sound machine\_build\soundmachine.exe, Soundmachine, @PATH@UserIcon\48x48\SoundMachine.png,@PATH@, 1'"
Und ohne Platzhalter
Zitat:
"c:\program files (x86)\microsoft visual studio\vb98\sourcemein\skaero projekte\sound machine\_build\soundmachine.exe, Soundmachine, c:\program files (x86)\microsoft visual studio\vb98\sourcemein\skaero projekte\sound machine\_build\UserIcon\48x48\SoundMachine.png, c:\program files (x86)\microsoft visual studio\vb98\sourcemein\skaero projekte\sound machine\_build\, , 1'"
So wie oben bleibt das wenigstens noch Lesbar.
Aber gut sei's drum.
--------------------
Mit den Verknüpfungen bin ich noch nicht durch.
Wenn ich jetzt direkt die *.lnk Dateien als Anwendungspfad angebe gibt es Probleme wenn der User diese vom Desktop entfernt.
Es gibt dann auch noch das Problem das die User definierten Icons dann für *.lnk Dateien unnötig sind zudem wird die Konfiguration dann unbrauchbar.

Eventuell muss ich den String parsen und nach dem Namen Icon scannen
Und nur dann wenn dieser existiert den Anwendungspfad austauschen mit dem vom Desktop wo die Verknüpfung abgelegt ist.
C:\Windows\Installer\{90160000-0011-0000-1000-0000000FF1CE}Icon.40BB677D.0A7A.4D43.9F72.5AE6F0E9 7EE2.exe
Ich denke das sollte auf allen Windows verschiedener Sprachen gleich sein.

Auf "C:\Windows\Installer\" hin zu prüfen dürfte fehlschlagen.

PS:
Habe jetzt nochmal alles umgebaut es werden jetzt nur noch positive Array Indexes verwendet.

gruss

Geändert von EWeiss (15. Mai 2017 um 06:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.349 Beiträge
 
Delphi 11 Alexandria
 
#34

AW: *.Lnk Verknüpfungen funktionieren nicht.

  Alt 15. Mai 2017, 05:52
Wenn ich jetzt direkt die *.lnk Dateien als Anwendungspfad angebe gibt es Probleme wenn der User diese vom Desktop entfernt.
Ich würde die intern benutzten Verknüpfungen schlicht in das Anwendungsdatenverzeichnis deines Programms kopieren und dann dort benutzen.
Wenn du die .lnk Dateien ausliest und die Daten irgendwo speicherst, machst du ja im Grunde auch nichts anderes.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#35

AW: *.Lnk Verknüpfungen funktionieren nicht.

  Alt 15. Mai 2017, 05:58
Zitat:
Ich würde die intern benutzten Verknüpfungen schlicht in das Anwendungsdatenverzeichnis deines Programms kopieren und dann dort benutzen.
Wenn der User diese löscht dann ist es fraglich diese in den Anwendungspfad zu kopieren.
Er wird ja einen Grund haben warum er sie löscht.

Es ist ja nicht so das die Anwendung dadurch abstürzt.
Nur die Anzeige der Icons auf der Bar sind dadurch beeinträchtigt.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.349 Beiträge
 
Delphi 11 Alexandria
 
#36

AW: *.Lnk Verknüpfungen funktionieren nicht.

  Alt 15. Mai 2017, 07:08
Er wird ja einen Grund haben warum er sie löscht.

Es ist ja nicht so das die Anwendung dadurch abstürzt.
Nur die Anzeige der Icons auf der Bar sind dadurch beeinträchtigt.
Wenn die echte .lnk nicht mehr da ist, musst du ja das Ausführen nicht mehr zulassen. Ich finde es aber auch nicht schlimm, wenn das Icon dann kaputt ist. Ich meine löschen ist löschen...
Es macht denke ich eher Sinn den Eintrag schlicht zu entfernen, denn ich habe das so verstanden, dass das ein Abbild der Desktop Icons sein soll, oder?

// EDIT:
Viel schöner wäre da allerdings ein Tool, dass die auch direkt ins Startmenü einklappern kann. Wenn ich irgendwo einen Rechner einrichte, dauert es immer recht lange die alle anzuklicken und da hinein zu befördern...
Aber ich glaube das ist (aus gutem Grund...) nicht vorgesehen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!

Geändert von jaenicke (15. Mai 2017 um 07:10 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#37

AW: *.Lnk Verknüpfungen funktionieren nicht.

  Alt 15. Mai 2017, 07:22
Zitat:
Viel schöner wäre da allerdings ein Tool, dass die auch direkt ins Startmenü einklappern kann.
Das ist keine schlechte Idee.

Ich möchte aber eigentlich nur dafür sorgen das der Desktop aufgeräumt wird.
Ohne Daten zu verändern, verschieben oder sonstiges.
Ich möchte also nicht so tief in das System eingreifen, so das ich nachher besondere Rechte für das Programm benötige.

Es ist am ende nur eine Schnellstart Leiste die man seinen Ansprüchen entsprechend anpassen kann.

gruss
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#38

AW: *.Lnk Verknüpfungen funktionieren nicht.

  Alt 15. Mai 2017, 07:26
Und noch ein Hinweis zu lnk-Dateien:

Sie speichern noch MEHR als nur das Icon und die Pfade!
Somit solltest du immer ShellExcec mit der Lnk-Datei machen.

In der Lnk-Datei stehen weitere Konfigurationen wie:
- Kompatibilitätsmodus
- Fenstergröße/Schriftart.. (bei z.B. Batchprogrammen bzw. Dos-Programmen).
- Sogar Zugriffsrechte..
- ...

Diese würdest du komplett verlieren, wenn du nur die Anwendungsdatei berücksichtigst zum Aufruf verwendest.

Und wenn die lnk-Datei vom User entfernt wurde, dann sollte diese auch bei dir entfernt werden. Schließlich will das der User so...
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#39

AW: *.Lnk Verknüpfungen funktionieren nicht.

  Alt 15. Mai 2017, 07:30
Zitat:
Somit solltest du immer ShellExcec mit der Lnk-Datei machen.
Ich sagte schon das kann bzw. will ich nicht weil hier noch einige andere Dinge Bezug darauf nehmen.
Man kann nicht pauschal sagen man sollte immer... sicher das ist der einfachste weg aber nicht immer der sinnvollste.
Abhängig von dem was sonst noch an dem Programm dranhängt.

Ich hoffe das kommt jetzt nicht wieder überheblich oder falsch rüber.

Zitat:
Und wenn die lnk-Datei vom User entfernt wurde, dann sollte diese auch bei dir entfernt werden. Schließlich will das der User so...
Das ist auch so nach einem Restart des Programms.. solange wie die Konfiguration nicht abgespeichert wurde werden die Verknüpfungen bei jedem Start neu eingelesen.
Also wenn er sie dann gelöscht hat werden sie auch nicht mehr addiert.

Wurde sie jedoch gespeichert dann ist immer noch ein Icon in der Bar das dann aber Leer ist.
Es liegt dann an ihm selbst das in der Konfigurationsdatei zu beheben.

Zitat:
Diese würdest du komplett verlieren, wenn du nur die Anwendungsdatei berücksichtigst zum Aufruf verwendest.
Nein, nein unabhängig davon ob ich diese über den Anwendungspfad starte verliere ich die nicht denn diese Daten stehen dann alle schon in meinem Array.
Also was ich so brauche.

Delphi-Quellcode:
  TSprite = packed Record
    CtrlName: WideString;
    CtrlIndex: Integer;
    Left: Single;
    Top: Single;
    Width: Integer;
    Height: Integer;
    Scale: Single;
    Opacity: Byte;
    ShellTo: string;
    IconPath: WideString;
    WorkDir: WideString;
    UseLabel: string;
    CmdLine: WideString;
    ShowCmd: LongInt;
    h_Bitmap: HBitmap;
    Visible: Bool;
  End;
gruss

Geändert von EWeiss (15. Mai 2017 um 08:47 Uhr)
  Mit Zitat antworten Zitat
madas

Registriert seit: 9. Aug 2007
207 Beiträge
 
#40

AW: *.Lnk Verknüpfungen funktionieren nicht.

  Alt 15. Mai 2017, 09:04
Ich habe eine Anwendung geschrieben die sich da nennt OverTheTaskbar. (OTTB.exe)
Das ist eine im Mac style ausgelegte Bar in der sich alle Anwendungen die man so benötigt integriert werden.

Es soll Leute geben die 30 > 100 Icons auf dem Desktop liegen haben.
Wenn meine Anwendung gestartet wird scannt diese alle Verknüpfungen auf dem Desktop und addiert diese zu OTTB.
Hm es soll Leute geben, bei denen liegt nur der Papierkorb auf dem Desktop. Was bringt Dein Programm diesen Leuten für Vorteile?
Mal ehrlich: Anwendungen, die man sehr häufig benutzt (mehr als 10-15 Stück werden das bestimmt nicht sein), kommen in die Windows-Standard-Taskbar.
Der Rest ist über Windows-Taste und Eingabe des Programmnamens sehr leicht zu finden bzw. zu starten. Daher erschließt sich mir der Sinn Deines
Taskbar-Aufsatzes nicht wirklich.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 8   « Erste     234 56     Letzte »    


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 02:25 Uhr.
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