Commondialog.filename liefert pfad-ziel einer verknpüfung anstatt den pfad-dateiname der verknüpfung selbst?
Hallo,
Visual Basic 6
Mit folgendem Code öffne ich einen Speichern-Dialog.
Gehe ich jetzt im Speichern-Dialog-Fenster z.B. in das Verzeichnis C:\test und gebe im Feld Dateinamen einen Namen ein, den es in dem Verzeichnis noch nicht gibt (z.B. test), steht in der Variable VerknName "C:\test\test". In der letzten Zeile, wird ggf. noch .lnk drangehängt. Soweit passt das alles.
Gibts aber im Verzeichnis c:\test bereits eine Verknüpfung test.lnk, welche z.B. auf "C:\windows\system32\notepad.exe" zeigt und ich wähle diese test.lnk im Speichern-Dialog-Fenster aus, steht in der Variable VerknName "C:\windows\system32\notepad.exe", was in der letzten Zeile noch erweitert wird auf "C:\windows\system32\notepad.exe.lnk". Das soll aber nicht sein. Es soll natürlich "C:\test\test.lnk" in der Variable stehen.
Nur zur Ergänzung, ich weiß nicht, ob das für das Problem noch relevant ist. Im weiteren Code wird erst die eigentliche lnk-Datei erstellt.
Wie gehts richtig?
Danke
AlbMin
Visual Basic 6
Mit folgendem Code öffne ich einen Speichern-Dialog.
CommonDialog1.initdir = "c:"
CommonDialog1.Filter = "LNK Files (*.lnk)"
CommonDialog1.ShowSave
VerknName = CommonDialog1.FileName
If Right(CommonDialog1.FileName, 4) <> ".lnk" Then VerknName = CommonDialog1.FileName & ".lnk"
Gehe ich jetzt im Speichern-Dialog-Fenster z.B. in das Verzeichnis C:\test und gebe im Feld Dateinamen einen Namen ein, den es in dem Verzeichnis noch nicht gibt (z.B. test), steht in der Variable VerknName "C:\test\test". In der letzten Zeile, wird ggf. noch .lnk drangehängt. Soweit passt das alles.
Gibts aber im Verzeichnis c:\test bereits eine Verknüpfung test.lnk, welche z.B. auf "C:\windows\system32\notepad.exe" zeigt und ich wähle diese test.lnk im Speichern-Dialog-Fenster aus, steht in der Variable VerknName "C:\windows\system32\notepad.exe", was in der letzten Zeile noch erweitert wird auf "C:\windows\system32\notepad.exe.lnk". Das soll aber nicht sein. Es soll natürlich "C:\test\test.lnk" in der Variable stehen.
Nur zur Ergänzung, ich weiß nicht, ob das für das Problem noch relevant ist. Im weiteren Code wird erst die eigentliche lnk-Datei erstellt.
Set link = wshshell.Createshortcut(VerknName)
link.TargetPath = "C:\meinOrdner\meineexedatei.exe"
link.WorkingDirectory = "C:\meinOrdner"
link.save
Wie gehts richtig?
Danke
AlbMin
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 245513
Url: https://administrator.de/forum/commondialog-filename-liefert-pfad-ziel-einer-verknpuefung-anstatt-den-pfad-dateiname-der-verknuepfung-selbst-245513.html
Ausgedruckt am: 19.04.2025 um 17:04 Uhr
2 Kommentare
Neuester Kommentar
Hallo AlbMin,
du hast den Filter für den Dialog nicht ganz korrekt angegeben - dieser muss die Dateierweiterung mit einer Pipe getrennt vom Text enthalten:
Dann wird auch der eigentliche Pfad der Verknüpfung selber ausgegeben!

Grüße Uwe
du hast den Filter für den Dialog nicht ganz korrekt angegeben - dieser muss die Dateierweiterung mit einer Pipe getrennt vom Text enthalten:
CommonDialog1.Filter = "Link Files (.lnk)|*.lnk"
Visual Basic 6
das kannten noch unsere Vorfahren Grüße Uwe