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

n/a Beiträge
 
#1

AW: *.Lnk Verknüpfungen funktionieren nicht.

  Alt 13. Mai 2017, 05:41
Zitat:
Himitsu hat Dir einen wichtigen Tipp gegeben: Den Rückgabewert von ShellExecute() auszuwerten. Ansonsten versuche es mal mit einem kurzen Pfad ohne Leerzeichen. Eventuell fehlen nur die doppelten Anführungszeichen.
Die Rückgaben sagen gar nichts aus wenn keine kommen. (Diese sind NUR wichtig wenn Fehler auftreten sollten ) tun sie aber nicht.

Zitat:
Er hat doch völlig Recht. Die Bildchen helfen niemand.
Aber ohne diese wirst du den ellenlangen Pfad den ich hier nicht eintippen will nicht sehen können.
So einfach ist das.
Die habe ich nicht angehängt weil sie schön sind sondern zu Dokumentations zwecken.

Zitat:
sondern dass das Auslesen der Pfade offenbar ein Problem bereitet.
Nö sondern dass das starten des Programms über den Pfad wie er im Bild ersichtlich ist nicht funktioniert.

Zitat:
Und ich kann rein garnichts erkennen, was mit einer LNK-Datei zu tun haben soll.
Du weist nicht was eine Verknüpfung ist? NA dann.

gruss

Geändert von EWeiss (13. Mai 2017 um 05:46 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: *.Lnk Verknüpfungen funktionieren nicht.

  Alt 13. Mai 2017, 05:51
Die Rückgaben sagen gar nichts aus wenn keine kommen. (Diese sind NUR wichtig wenn Fehler auftreten sollten ) tun sie aber nicht.
ShellExecute hat immer einen Rückgabewert. Und dein Problem ist doch, dass es nicht funktioniert, also wieso sollte der Rückgabewert nichts aussagen?

Rückgabewerte nicht zu behandeln heißt:
"Mach mal, aber wenn es nicht geht, ist es mir auch egal."
Wenn es dir nicht egal ist, ob es nicht funktioniert, solltest du die Rückgabewerte auch behandeln um ggf. eine passende Fehlermeldung auszugeben.

Wenn der Rückgabewert von ShellExecute wirklich sagt alles ok, bleibt nur noch mit Tools wie dem Process Monitor zu schauen warum das erfolgreich gestartete Programm (Rückgabewert alles ok, also wurde es gestartet) abstürzt.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: *.Lnk Verknüpfungen funktionieren nicht.

  Alt 13. Mai 2017, 06:00
Was steht denn in Deinen Strings, die Du an ShellExecute übergibst?
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: *.Lnk Verknüpfungen funktionieren nicht.

  Alt 13. Mai 2017, 06:53
Was steht denn in Deinen Strings, die Du an ShellExecute übergibst?
Dafür muss man sich mein Dokument in Bildform ansehen da steht der Name der Exe.

Delphi-Quellcode:
ShellExecuteAndWaitW(MainHandle, 'open', PWideChar(sShellTo), PWideChar(sCmdLine),
  PWideChar(sFullPath), gS[nItem].ShowCmd, true);
Parameter:
'ShellTo, UseLabel, IconName, WorkDir, CmdLine, EnableShortcutTrueFalse'
Zu Parsender String
"explorer.exe, Win7(C, @PATH@UserIcon\48x48\HD.png, @PATH@, C:\, 1"


sShellTo = explorer.exe
sUseLabel = Win7(C
sUseThumb = @PATH@UserIcon\48x48\HD.png
sFullPath(Workdir) = ''
sCmdLine = C:\
gS[nItem].ShowCmd := SW_SHOW

Als Beispiel.

gruss
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: *.Lnk Verknüpfungen funktionieren nicht.

  Alt 13. Mai 2017, 07:03
Emil - wir reden aneinander vorbei. Dein Screenshot zeigt den Windows-eigenen Dialog zu den Eigenschaften des Links. Schön und gut.
Relevant ist aber doch, was in Deinen Strings steht. Und das geht aus Deinen Screenshots nicht hervor. Auch wenn Du noch so sehr insistierst.
Im ersten Beitrag nutzt Du "ShellExecute", jetzt im letzten Beitrag "ShellExecuteAndWait", was eine eigene Routine ist - auch hier könnten Fehler verborgen sein.
Die Notation mit "@Path@" ist mir nicht bekannt und erscheint mir suspekt.

Rückgabewert von ShellExecute prüfen oder mit Werkzeugen wie dem ProzessExplorer von Microsoft mal schauen, wo Dein Programm hin will. Mehr fällt mir auch nicht ein.
ich bin jetzt aber auch raus.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: *.Lnk Verknüpfungen funktionieren nicht.

  Alt 13. Mai 2017, 07:12
Emil - wir reden aneinander vorbei. Dein Screenshot zeigt den Windows-eigenen Dialog zu den Eigenschaften des Links. Schön und gut.
Relevant ist aber doch, was in Deinen Strings steht. Und das geht aus Deinen Screenshots nicht hervor. Auch wenn Du noch so sehr insistierst.
Im ersten Beitrag nutzt Du "ShellExecute", jetzt im letzten Beitrag "ShellExecuteAndWait", was eine eigene Routine ist - auch hier könnten Fehler verborgen sein.
Die Notation mit "@Path@" ist mir nicht bekannt und erscheint mir suspekt.

Rückgabewert von ShellExecute prüfen oder mit Werkzeugen wie dem ProzessExplorer von Microsoft mal schauen, wo Dein Programm hin will. Mehr fällt mir auch nicht ein.
ich bin jetzt aber auch raus.
Zitat:
Die Notation mit "@Path@" ist mir nicht bekannt und erscheint mir suspekt.
Das kann man sehen wie man will. Für mich ist das wichtig um den gesamt String zu parsen wie ich das nun im Code Händle sei mal dahingestellt.
Zitat:
Relevant ist aber doch, was in Deinen Strings steht.
Dort steht das was ich im vorherigen Beitrag geschrieben habe.

Zitat:
Dein Screenshot zeigt den Windows-eigenen Dialog zu den Eigenschaften des Links. Schön und gut.
Da sind 2 Kleine Bilder nicht gesehen ?
Dort steht der Komplette Pfad wie jetzt gepostet.

Wenn ich den Shortcut auslese bekomme ich diesen EXE-Pfad.
C:\Windows\Installer\{90160000-0011-0000-1000-0000000FF1CE}Icon.40BB677D.0A7A.4D43.9F72.5AE6F0E9 7EE2.exe
logischerweise wenn jemand mein Dokument als ScreenShot angesehen hätte wäre er alleine darauf gekommen.

also nun steht bei mir im Shellexecute string folgendes.
ShellExecuteAndWaitW(MainHandle, 'open', 'C:\Windows\Installer\{90160000-0011-0000-1000-0000000FF1CE}Icon.40BB677D.0A7A.4D43.9F72.5AE6F0E9 7EE2.exe', ''
'', SW_SHOW, true);

Das Problem ist nun der Pfad C:\Windows\Installer ist versteckt.
Wenn ich die Datei direkt im Ordner ausführen will kommt die Meldung "Ist keine zulässige Windows Anwendung"

Wenn ich aber den ShortCut auf dem Desktop direkt doppelklicke funktioniert das.
Und die Datei\Programm wird geöffnet.

Zitat:
ShellExecute hat immer einen Rückgabewert. Und dein Problem ist doch, dass es nicht funktioniert, also wieso sollte der Rückgabewert nichts aussagen?
Ich sage nochmal den braucht man nicht denn Windows wirft die Meldung von selbst wenn was nicht stimmt.
Ohne das man sich da selbst noch mit rumschlagen muss.

Zitat:
jetzt im letzten Beitrag "ShellExecuteAndWait", was eine eigene Routine ist - auch hier könnten Fehler verborgen sein.
Ja warum auch nicht.
Denn ich versuche auch nebenbei noch selbst auf die Lösung zu kommen.
Es könnte ja sein Das diese Anwendung eine gewisse zeit benötigt um zu starten und es deshalb nicht funktioniert.
Aber nach meinem Test liegt es daran definitiv nicht.

Ich habe auch schon die Attribute zugewiesen um versteckte Dateien lesen zu können
Aber ausführen lassen sie sich nicht.

fd.dwFileAttributes := 39; //NORMAL + READONLY + HIDDEN + SYSTEM + ARCHIVE

gruss

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

Registriert seit: 26. Mai 2013
Ort: Erlangen, Franken
129 Beiträge
 
Delphi 12 Athens
 
#7

AW: *.Lnk Verknüpfungen funktionieren nicht.

  Alt 13. Mai 2017, 08:45
Welche Windows-Version?

32 oder 64 Bit?

Ist die App 32 oder 64 Bit?
Björn Reimer
  Mit Zitat antworten Zitat
Antwort Antwort


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 - 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