Verknüpfung per VBS erstellen

  • VBScript

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von knueppel.

    Verknüpfung per VBS erstellen

    Hallo zusammen,
    könnt ihr mir bitte weiter Helfen?. Ich versuche ein VBScripts zu erstellen, mit dem ich eine Verknüfung eines Ordner erstellen kann. Schön wäre, wenn ich das Icon des Scipts auf den Ordner ziehe und die Verknüfung wird an den vorgegebenen Ort erstellt. Zudem soll die Eingabe des Namen der Verknüfungen mölich sein.
    Gruß
    Geht andersrum. Der Ordner muss auf dem Script abgelegt werden.

    Wird ein Ordner auf folgendem Script angelegt, dann wird unter 'Senden An' eine Verknpüfung zu dem Ordner angelegt.

    Visual Basic-Quellcode

    1. Dim objShortcut, objShell,fso
    2. Set fSO = CreateObject("Scripting.FileSystemObject")
    3. if WScript.Arguments.Count > 0 then 'Was übergeben worden?
    4. For Each Arg in Wscript.Arguments
    5. if fso.FolderExists(Arg) then 'Ist es ein existierender Ordner?
    6. Set objShell= WScript.CreateObject("Wscript.Shell")
    7. Set fso = CreateObject("Scripting.FileSystemObject")
    8. strLPfad=objShell.SpecialFolders("AppData") &"\Microsoft\Windows\SendTo" 'Verknüpfung kommt nach Senden An
    9. Set objShortcut=objShell.CreateShortcut(strLPfad & "\" & replace(mid(Arg,instrrev(Arg,"\")+1),"\","") & ".lnk") 'Name der Verknüpfung mit .lnk als Typ
    10. objShortcut.TargetPath= Arg' Pfad des Verknüpfungsziels
    11. objShortcut.Description= replace(mid(Arg,instrrev(Arg,"\")+1),"\","")
    12. 'objShortcut.IconLocation = "\\pfadzumicon.ico"
    13. objShortcut.WorkingDirectory = Arg ' welches Verzeichnis soll aktiviert sein?
    14. objShortcut.Save ' Speicher das Ding
    15. end if
    16. next
    17. end if


    Eingabe eines Namens ist mit inputbox möglich. Danach noch auf ungültige Zeichen prüfen. Das dann in die Zeile mit dem .lnk statt dem Zeug mit dem Replacestring. Bissel was musst halt selbst machen ;)
    Gruß
    Peterfido

    Keine Unterstützung per PN!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „peterfido“ ()

    Danke für deine schnelle Antwort
    leider habe ich das : "Das dann in die Zeile mit dem .lnk statt dem Zeug mit dem Replacestring" nicht verstanden, zumindest klapt es nicht. Nachdem ich den Ordner auf das Script lege, passiert nichts. Die Verknüpfung sollte auf dem Desktop erzeugt werden.
    Das passiert bei mir auch, aber leider wird keine Verknüpfung erzeugt, sondern eine Kopie des Ordner.
    Super wäre, wenn ich den Ordner von dem ich eine Verpknüfung haben möchte, auf dem Script ziehe. Das Zielpfad der erstellten Verknüpfung gebe ich im Script vor und den Namen der Verknüpfung soll abgefragt werden.
    Hier dran habe ich mich auch schon versucht aber nicht geschaft :(

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objShell = CreateObject("WScript.Shell")

    strTarget = InputBox("C:\Test")

    If strTarget <> "" Then
    objShortcut = objShell.CreateShortcut(WScript.Arguments(0))
    objShortcut.TargetPath = strTarget
    objShortcut.WorkingDirectory = objFSO.GetParentFolderName(strTarget)
    objShortcut.Save
    End If
    Ich habe den Code oben mal kommentiert. Ich habe 17 Zeilen Code und Du nur 9. Ein Link hat immer die Endung

    Visual Basic-Quellcode

    1. .lnk
    Im Verknüpfungsnamen dürfen keine ungültigen Zeichen wie z.B. :*/\?" vorkommen. Am Anfang und Ende darf kein Leerzeichen sein.

    Bissel was überlasse ich Dir. [Das Abtippen ;)]
    Bilder
    • Verknüppeln.png

      26,81 kB, 1.091×730, 298 mal angesehen
    Gruß
    Peterfido

    Keine Unterstützung per PN!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „peterfido“ ()

    jetzt habe ich es hin bekommen, danke für deine schnelle Hilfe.
    Nun habe ich noch eine Projekt, vielleicht kannst du mir da auch weiter helfen.
    Ich habe nun die Verknüfungen mit Namen (gesammt 620, hier Beispiel Max Mustermann). Nun sollen zwei Regeln erstellt werden die wie folgt aus sehen:

    Regel 1

    [Arbeitsauftrag Mustermann]
    State=Enabled
    Rules=*Mustermann*
    Action=$0
    Destination=D:\Arbeitsauftrag
    Filters=0>KB|0>D|0>D|0>D|0=off|0=off|0=off|0=off|0=off|0=|1xArbeitsauftrag Mustermann

    Regel 2
    [EinsatzplanEinzeln Mustermann]
    State=Enabled
    Rules=*Mustermann*
    Action=$0
    Destination=D:\Einsatzplan
    Filters=0>KB|0>D|0>D|0>D|0=off|0=off|0=off|0=off|0=off|0=|1xEinsatzplan Mustermann

    Ist es möglich dieses über ein Script zu machen?, der Text bleit bis auf das rote immer gleich. Falls es möglich ist, soll der Nachname in ein Fenster eingeben werden und die Regel 1 wird erstellt. In ein weiteres Fenster oder ein weiteres Script soll Regel 2 erstellt werden.
    Die rote Schrift ist nur um deutlich zu machen, was sich ändern soll.
    Ich hoffe du kannst mir, bei dieser für mich schwere Sache , helfen.
    Hallo,

    ja, ist möglich. Da kaue ich aber nix vor. Sieht mir nach Hausaufgaben aus und die macht man selbst, damit man was lernt. :D

    Wenn sich was ändert, nimmt man Variablen. Diese einfach mit dem gewünschten Wert füttern und losackern lassen. Der Inhalt sieht mir stark nach INI-Datei aus. Dafür gibt es ausreichend Beispiele im Netz.

    Edit:
    Der arme Desktop mit 620 Verknüpfungen =O
    Gruß
    Peterfido

    Keine Unterstützung per PN!