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
Please also mark the comments that contributed to the solution of the article
Content-Key: 245513
Url: https://administrator.de/contentid/245513
Printed on: April 19, 2024 at 11:04 o'clock
2 Comments
Latest comment
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