Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
588to592
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
588to592
588to592
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Ziel einer Verknüpfung zu einem Ordner finden

Ziel einer Verknüpfung zu einem Ordner finden
23.03.2005 12:01:57
Stefan
In einem Ordner sind mehrere Unterordner, die ich per Makro durchsuchen will,
in etwa mit folgendem Code:
pfad = ThisWorkbook.Path & "\"
ordner = Dir(pfad, vbDirectory)
Do While ordner <> ""
If GetAttr(pfad & ordner) And vbDirectory Then
MsgBox ordner
End If
ordner = Dir()
Loop
In dem Ordner sind aber auch einige Verknüpfungen auf andere Ordner enthalten, die ich auch durchsuchen muss. Diese werden aber nicht als Ordner erkannt, sondern als .lnk-Datei. Wie bekomme ich das Ziel dieser Verknüpfungen heraus?
Oder gibt es einen anderen Weg, auch die Zielverzeichnisse der Verknüpfungen zu durchsuchen?

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ziel einer Verknüpfung zu einem Ordner finden
23.03.2005 14:34:58
Tobias Marx
Servus!

Soweit ich weiss, wirst du das nicht hinbekommen, weil solche Verknuepfungen unter windows einfach *.lnk-Dateien sind - obs dir passt oder nicht. Die Dateien werden immer als solche behandelt, ausser ueber den Windows-Explorer (selbst ueber andere aeltere Dateimananger werden sie nru als Datei erkannt).
Wenn du das irgendwie schaffen willst, musst du die Eigenschaften der *.lnk-Datei auslesen (frag mich ned wie das geht), in denen steht dann auch der Ordner, auf den die Datei verweist. So muesste es dann ansich gehen.
Gruss

Tobias
So müsste es gehen
23.03.2005 15:01:02
Frank Domke
Hallo Stefan,
versuche es mal so:

Sub Stefan()
' Verweis auf "Windows Script Host Object Model" setzen!
Dim Shell As WshShell
Dim Shortcut As WshShortcut
Set Shell = New WshShell
Pfad = ThisWorkbook.Path & "\"
ordner = Dir(Pfad, vbNormal)
Do While ordner <> ""
If GetAttr(Pfad & ordner) And vbDirectory Then
MsgBox ordner
ElseIf Right(ordner, 4) = ".lnk" Then
' Link auflösen
Set Shortcut = Shell.CreateShortcut(Pfad & ordner)
If GetAttr(Shortcut.TargetPath) And vbDirectory Then
MsgBox Shortcut.TargetPath
End If
Set Shortcut = Nothing
End If
ordner = Dir()
Loop
Set Shell = Nothing
End Sub

Viel Erfolg
Frank.
Anzeige
AW: So müsste es gehen
23.03.2005 16:01:26
Stefan
Vielen Dank für deine Antwort, so scheint es zu gehen.
Ich habe inzwischen etwas ähnliches gefunden (benutzt wahrscheinlich dieselbe Funktionalität wie dein Makro):

Private Function GetShortcutTarget(strShortcut As String) As String
Dim wshell As Object
Set wshell = CreateObject("wscript.Shell")
On Error Resume Next ' skip if shortcut does not exist
GetShortcutTarget = wshell.CreateShortcut(strShortcut).TargetPath
On Error GoTo 0
End Function

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige