AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Verknüpfung von einem Ordner erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Verknüpfung von einem Ordner erstellen

Ein Thema von Ykcim · begonnen am 7. Mär 2017 · letzter Beitrag vom 8. Mär 2017
Antwort Antwort
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#1

AW: Verknüpfung von einem Ordner erstellen

  Alt 7. Mär 2017, 20:12
Tja, leider bekomme ich es nicht hin.
Ich habe jetzt ein kleines Projekt erstellt, um das ganze zu testen. Ich hänge es hier an - vielleicht ist der Fehler dann nachvollziehbar...

Vielen Dank
Patrick
Angehängte Dateien
Dateityp: zip Link_Programm.zip (2,60 MB, 7x aufgerufen)
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.401 Beiträge
 
Delphi 12 Athens
 
#2

AW: Verknüpfung von einem Ordner erstellen

  Alt 7. Mär 2017, 22:21
Der Code ist seit Jahren bei uns erfolgreich im Einsatz, allerdings füllen wir die Parameter zufällig auch richtig.
Als LinkFilename wird da das Ergebnis eines SaveDialogs reingegeben, welcher nur korrekte Dateinamen in existierenden Pfaden mit Schreibrechten raus gibt. :stipid:

CreateLinkFile('D:\Anfragen\9220\16248\Angebot.lnk', 'D:\Anfragen\9220\Angebot', '', '');

D:\Anfragen\9220\16248 ist ein Verzeichnis und keinen Dateiname?

Wenn ja, dann knallt es im PersistFile.Save mit Zugriff verweigert, was leider nicht ausgewertet wurde.
Delphi-Quellcode:
procedure CreateLinkFile(LinkFilename, Filename, Args, Description: string);
procedure Check(H: HResult);
  begin
    if not Succeeded(H) then
      RaiseLastOSError(H);
  end;
var
  ShellLink: IShellLink;
  PersistFile: IPersistFile;
begin
  Check(CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER, IID_IShellLink, ShellLink));
  Check(ShellLink.SetPath(PChar(Filename)));
  Check(ShellLink.SetArguments(PChar(Args)));
  Check(ShellLink.SetDescription(PChar(Description)));
  Check(ShellLink.SetWorkingDirectory(PChar(ExtractFilePath(Filename))));
  Check(ShellLink.QueryInterface(IPersistFile, PersistFile));
  Check(PersistFile.Save(PChar(LinkFilename), True));
end;
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 7. Mär 2017 um 22:27 Uhr)
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#3

AW: Verknüpfung von einem Ordner erstellen

  Alt 7. Mär 2017, 22:35
Ich prüfe vorher ab, ob die Ordner existieren / lege sie an, wenn sie nicht existieren.
Es handelt sich tatsächlich um eine Verknüpfung zu einem Ordne und nicht zu einer Datei.

D:\Anfragen\9220\16248 ist ein Verzeichnis
D:\Anfragen\9220\Angebot ist auch ein Verzeichnis

D:\Anfragen\9220\Angebot soll in D:\Anfragen\9220\16248 als Verknüpfung erscheinen.

Vielen Dank
Patrick
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.401 Beiträge
 
Delphi 12 Athens
 
#4

AW: Verknüpfung von einem Ordner erstellen

  Alt 7. Mär 2017, 22:40
Nicht dein Ziel ist falsch, sondern die Verknüpfungsdatei.

Das Ziel darf eine Datei oder ein Verzeichnis sein,
aber die "Datei", in welcher die Verknüpfung gespeichert wird, muß natürlich eine Datei sein.
Siehe mein vorhin gezeigtes Beispiel.


Wenn wirklich ein "Verzeichnis" mit einem anderen Verzeichnis im Dateisystem "verlinkt" verwenden soll, dann wäre das ein Bei Google suchenHardLink, bzw. ein SoftLink aka Bei Google suchenJunction.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 7. Mär 2017 um 22:45 Uhr)
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#5

AW: Verknüpfung von einem Ordner erstellen

  Alt 8. Mär 2017, 00:03
Ich ...

ich habe es *.ink statt mit *.lnk versucht.

Vielen Dank, ja, jetzt funktioniert es!!!

Gute N8
Patrick
Patrick
  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 02:09 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