Shortcut auf ein Verzeichnis

Hallo zusammen,

wenn ich per Drag und Drop ein Verzeichnis in das Startmenü
ziehe, so erstellt Windows XP dort einen Ordner mit dem Ort
des Ordners. Klicke ich den Eintrag an, dann erhalte ich eine
Liste der in dem Verzeichnis erhaltenen Dateien und Ordner.
Zudem ist es dynamisch. Wenn ich in das Verzeichnis weitere
Programme oder Verzeichnis einstelle, erscheinen diese in der
Liste.

Mein Problem:
Ich möchte die Erstellung eines solchen Ordners gerne auto-
matisieren, damit dieser auf mehrere PC eingestellt werden
kann. Alle Personen haben auf das entsprechende Laufwerk Zu-
griff. Hat einer eine Idee, wie ich dies mit Hilfe einer vbs-
Datei oder über ein kleines C+±Programm realisieren kann?

Herzlichen Dank bereits im Voraus!

Gruß Olaf

Hallo,

Ich möchte die Erstellung eines solchen Ordners gerne auto-
matisieren, damit dieser auf mehrere PC eingestellt werden
kann. Alle Personen haben auf das entsprechende Laufwerk Zu-
griff. Hat einer eine Idee, wie ich dies mit Hilfe einer vbs-
Datei oder über ein kleines C+±Programm realisieren kann?

Muesste das nicht mit „ln -F Verzeichnis Ziel“ unter DOS klappen? Kanns im Moment nicht austesten.

Ciao! Bjoern

Mittlerweile geschafft
Im Internet habe ich den unten von mir schon etwas modifizier-
ten Code (WSH-Script) gefunden.
Mittlerwiele habe ich es geschafft einen Folder im Startmenü
anzulegen, der zeigt mir allerdings immer nur den Inhalt des
Arbeitsplatzes angezeigt wird. Dies liegt wohl an CLSID, die
ich gefunden habe: {20D04FE0-3AEA-1069-A2D8-08002B30309D}

Ich möchte aber den Explorer aufrufen und den unter siteUrl
angegebenen Verzeichnis verzweigen. Vielleicht muss auch die
Target.lnk angepasst werden? Kann mir hier einer weiterhelfen?

Code:

Option Explicit

Sub CreateNetworkFolder(siteURL, siteName)

Dim iRes, jRes, MT, TT
Dim SH, newPath
Dim objFso, f, fs, g

Dim bString
Dim ltrIndex
Dim nameLength, urlLength, urlCutoff
Dim aFile, wshShell, oShellLink, TPA, TP

Const ForWriting = 2

nameLength = Len(siteName)
urlLength = Len(siteURL)
urlCutoff = 44

MT = "OK to create a My Network Places " & vbCr & _
"folder for " & siteURL & vbCr & "named " & siteName & „?“
TT = „My Network Places“
iRes = MsgBox(MT, vbOKCancel + vbInformation, TT )

Set objFso = CreateObject(„Scripting.FileSystemObject“)

If iRes = vbCancel Then
WScript.Quit
End If

Set SH = WScript.CreateObject(„WScript.Shell“)

newPath = SH.SpecialFolders(„AllUsersStartMenu“) & „“ & _
siteName

MsgBox newPath
If (objFso.FolderExists(siteURL & „“ & siteName)) Then _
WScript.Echo "A Network Place with that name " & _
„already exists.“
WScript.Quit
End If

objFso.CreateFolder(newPath)

Set fs = CreateObject(„Scripting.FileSystemObject“)
aFile = newPath & „\Desktop.ini“
MsgBox afile
Set f = fs.OpenTextFile( aFile, ForWriting, True )

f.WriteLine „[.ShellClassInfo]“
f.WriteLine „CLSID2={20D04FE0-3AEA-1069-A2D8-08002B30309D}“
f.WriteLine „Flags=2“
f.WriteLine „ConfirmFileOp=0“
f.Close

Set fs = CreateObject(„Scripting.FileSystemObject“)
Set g = fs.GetFile(newPath & „\Desktop.ini“)
g.Attributes = 6

Set fs = CreateObject(„Scripting.FileSystemObject“)
Set g = fs.GetFolder(newPath)
g.Attributes = 1

bString = Chr(&H4C) & Chr(&H00) & Chr(&H00) & Chr(&H00) & _
Chr(&H01) & Chr(&H14) & Chr(&H02) & Chr(&H00) & _
Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&HC0) & _
Chr(&H00) & Chr(&H00) & Chr(&H00)

bString = bString & Chr(&H00) & Chr(&H00) & Chr(&H00) & _
Chr(&H46) & Chr(&H81) & Chr(&H00) & Chr(&H00) & Chr(&H00) & _
Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&H00) & _
Chr(&H00) & Chr(&H00) & Chr(&H00)

bString = bString & Chr(&H00) & Chr(&H00) & Chr(&H00) & _
Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&H00) & _
Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&H00) & _
Chr(&H00) & Chr(&H00) & Chr(&H00)

bString = bString & Chr(&H00) & Chr(&H00) & Chr(&H00) & _
Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&H00) & _
Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&H01) & _
Chr(&H00) & Chr(&H00) & Chr(&H00)

bString = bString & Chr(&H00) & Chr(&H00) & Chr(&H00) & _
Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&H00) & _
Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&H00)

bString = bString & Chr(&HFF)

If urlLength > urlCutoff Then
bString = bString & Chr(&H01)
Else
bString = bString & Chr(&H00)
End If

bString = bString & Chr(&H14) & Chr(&H00)

bString = bString & Chr(&H1F) & Chr(&H50) & Chr(&HE0) & _
Chr(&H4F) & Chr(&HD0) & Chr(&H20) & Chr(&HEA) & Chr(&H3A) & _
Chr(&H69) & Chr(&H10) & Chr(&HA2) & Chr(&HD8) & Chr(&H08) & _
Chr(&H00) & Chr(&H2B) & Chr(&H30)

bString = bString & Chr(&H30) & Chr(&H9D) & Chr(&H14) & _
Chr(&H00) & Chr(&H2E) & Chr(&H00) & Chr(&H00) & Chr(&HDF) & _
Chr(&HEA) & Chr(&HBD) & Chr(&H65) & Chr(&HC2) & Chr(&HD0) & _
Chr(&H11) & Chr(&HBC) & Chr(&HED)

bString = bString & Chr(&H00) & Chr(&HA0) & Chr(&HC9) & _
Chr(&H0A) & Chr(&HB5) & Chr(&H0F) & Chr(&HA4)

If urlLength > urlCutoff Then
bString = bString & Chr(&H01)
Else
bString = bString & Chr(&H00)
End If

bString = bString & Chr(&H4C) & Chr(&H50) & Chr(&H00) & _
Chr(&H01) & Chr(&H42) & Chr(&H57) & Chr(&H00) & Chr(&H00)

bString = bString & Chr(&H00) & Chr(&H00) & Chr(&H00) & _
Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&H00) & _
Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&H00) & _
Chr(&H00) & Chr(&H10) & Chr(&H00)

bString = bString & Chr(&H00) & Chr(&H00)

bString = bString & Chr(nameLength)

For ltrIndex = 1 To nameLength
bString = bString & Chr(&H00) & Mid(siteName, ltrIndex, 1)
Next

bString = bString & Chr(&H00) & Chr(&H00) & Chr(&H00)

bString = bString & Chr(urlLength)

For ltrIndex = 1 to urlLength
bString = bString & Chr(&H00) & Mid(siteURL, ltrIndex, 1)
Next

bString = bString & Chr(&H00) & Chr(&H00) & Chr(&H00) & _
Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&H00) & _
Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&H00)

Set fs = CreateObject(„Scripting.FileSystemObject“)
aFile = newPath & „\target.lnk“
Set f = fs.OpenTextFile(aFile, ForWriting, True)
f.Write bString
f.Close

MT = siteName & " created."
jRes = MsgBox(MT, vbOK, TT )

End Sub

CreateNetworkFolder „C:\temp“, „myFolderNew“

Lösung
Die Lösung ist einfach:

Auf der folgenden Seite habe ich sie gefunden:
http://www.tek-tips.com/viewthread.cfm?qid=1219950&p…

Zum einen war es -wie vermutet- die CLSID und zum Anderen
musste target.lnk im entsprechenden Verzeichnis als Shortcut
angelegt werden. Ihm wird der Path mit gegeben, und das war es.