Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Anlegen eines Shortcuts auf dem Desktop

Mitglied: kafri84

kafri84 (Level 1) - Jetzt verbinden

08.06.2010, aktualisiert 18.10.2012, 6205 Aufrufe, 12 Kommentare

Hallo zusammen,

Ich habe heute mein erstes VB-Script geschrieben. Damit möchte ich ShortCuts auf dem Desktop erstellen.

Ich habe allerdings 3 Fragen/Probleme:

1.) Wie kann ich die Icons in einen Ordner (%Allusersdesktop%\Ordnername) auf den Desktop erstellen. Bisher schaffe ich es nur, die Icons direkt auf dem Desktop zu erstellen.
2.) Mein Shortcut funkioniert erst, nachdem ich einmal die Einstellungen vom Shortcut gehe und mit "OK" die Einstellungen wieder schließe.
3.) Muss ich etwas beachten, wenn ich das Script unter Windows 7 ausführe? Ändern sich dann irgendwelche Parameter oder Variablen?


Anbei noch mein Script, damit man sieht, was ich falsch gemacht habe..:

01.
	 
02.
set WshShell = WScript.CreateObject("WScript.Shell") 
03.
strDesktop = WshShell.SpecialFolders("AllUsersDesktop") 
04.
set oShellLink = WshShell.CreateShortcut(strDesktop & "\Linkname.lnk") 
05.
oShellLink.TargetPath = "%programfiles%\Ordnername\Programm.exe" & Chr(34) & " " & Chr(47) & "SERVER=" & Chr(34) & "Servername" & Chr(34) & " " & Chr(47) & "KEY=" & Chr(34) & "12345-A" & Chr(34)  
06.
oShellLink.WindowStyle = 1 
07.
oShellLink.IconLocation = "%programfiles%\Ordnername\Programm.exe" 
08.
oShellLink.Description = "Linkbeschreibung" 
09.
oShellLink.WorkingDirectory = "%programfiles%\Ordnername" 
10.
oShellLink.Save 

Anzumerken ist, dass die Zeile, in der das Ziel angeben wird, im späteren Link zu Beginn wie folgt aussieht:


01.
"%programfiles%\Ordnername\Programm.exe" /SERVER="Servername" /KEY="12345-A""


Nachdem ich einmal in den Einstellungen war und mit "OK" wieder verlassen habe, ändert sich der Link wie folgt und funktioniert:

01.
 %programfiles%\Ordnername\Programm.exe /SERVER="Servername" /KEY="12345-A""


Im Idealfall sieht der Pfad am Ende so aus:

01.
%programfiles%\Ordnername\Programm.exe /SERVER="Servername"  /KEY="12345-A"


Ich hoffe, dass das soweit verständlich ist. Wenn nicht, dann erkläre ich es gerne ausführlicher.

Ich bin für jeden Hinweis dankbar, da ich momentan nicht mehr weiter komme.

vielen Dank im Voraus.

kafri84
Mitglied: bastla
08.06.2010, aktualisiert 18.10.2012
Hallo kafri84!

Zum einen gibt es für die zu übergebenden Argumente
/SERVER="Servername"  /KEY="12345-A"
die Eigenschaft ".Arguments" (hatten wir mal hier),

zum anderen kannst Du ja
set oShellLink = WshShell.CreateShortcut(strDesktop & "\Linkname.lnk")
um einen (bereits bestehenden) Ordner erweitern, also etwa
set oShellLink = WshShell.CreateShortcut(strDesktop & "\Ordnername\Linkname.lnk")
Um diesen Ordner (bei Bedarf) zu erstellen, gibt es "FolderExists" und "CreateFolder".

Grüße
bastla
Bitte warten ..
Mitglied: LotPings
08.06.2010 um 12:18 Uhr
Hallo bastla,

ich kann ja falsch liegen, aber Ordnername gehört doch zum Targetpath.
Ich glaube das "nicht expandieren" von %programfiles% stellt das Problem dar.
Geht aber mit SpecialFolders genauso, der Begriff lautet dann nur Programs.
Ungetestet:
01.
set WshShell = WScript.CreateObject("WScript.Shell") 
02.
strDesktop = WshShell.SpecialFolders("AllUsersDesktop") 
03.
strWorkDir = WshShell.SpecialFolders("Programs") & "\Ordnername\" 
04.
strProgram = strWorkDir & "Programm.exe" 
05.
 
06.
set oShellLink = WshShell.CreateShortcut(strDesktop & "\Linkname.lnk") 
07.
oShellLink.TargetPath = strProgram 
08.
oShellLink.Arguments = "/SERVER=""Servername""  /KEY=""12345-A""" 
09.
oShellLink.WindowStyle = 1 
10.
oShellLink.IconLocation = strProgram 
11.
oShellLink.Description = "Linkbeschreibung" 
12.
oShellLink.WorkingDirectory = strWorkDir 
13.
oShellLink.Save 
Gruß
LotPings
Bitte warten ..
Mitglied: Tommylik
24.03.2011 um 17:22 Uhr
Hallo an alle,

Ich denke einen neu Beitrag zu erstellen ist nicht notwendig.

Ich habe folgenden Code:

Const strProgramtitel = "Mp3tag"
Const strProgram = """C:\Program Files (x86)\Mp3tag\Mp3tag.exe"""
Const strLPfad = "C:\Users\Tom\Desktop"

Dim objShortcut
Dim objShell
Set objShell = WScript.CreateObject("Wscript.Shell")
Set objShortcut =objShell.CreateShortcut(strLPfad & "\" & strProgramtitel & ".lnk")
objShortcut.TargetPath = strProgram
objShortcut.Description = "Musik"
objShortcut.WorkingDirectory = strLPfad
objShortcut.Save

Dieser Code funktioniert sehr gut.
Ich würde gerne mehr als nur ein Link auf dem Desktop erstellen.

Aber wenn ich das richtig verstehe, kann man mit diesem Code immer ein Programm angeben.
Könnte mir jemand von Euch dabei helfen.

Oder ist das mit diesem Code garnicht möglich?

Vielen Dank schon mal vorab.

Mfg Tom
Bitte warten ..
Mitglied: bastla
24.03.2011 um 18:21 Uhr
Hallo Tommylik!
Ich denke einen neu Beitrag zu erstellen ist nicht notwendig.
Sehe ich anders; dort kannst Du dann auch etwas ausführlicher darstellen, was Du genau vorhast (und verwende bitte für gepostete Code-Schnipsel die passende Formatierung) ...

Grüße
bastla
Bitte warten ..
Mitglied: LotPings
24.03.2011 um 19:08 Uhr
Bastla hat natürlich Recht, in der Kürze liegt die Würze
meinen etwas länger formulierten Beitrag hänge ich mal an:

Zitat von Tommylik:
Hallo an alle,
Hallo Tom.

Ich denke einen neu Beitrag zu erstellen ist nicht notwendig.

Nicht unbedingt, aber dann "sehen" primär nur die am alten Beitrag Beteiligten das es da was neues gibt.

Ich habe folgenden Code:
..%<...snip......
Wenn du deunen Code in entsprechende Tags packst kann man ih besser lesen und durch die Zeilennumerierung auch referenzieren.

Dieser Code funktioniert sehr gut.
Ich würde gerne mehr als nur ein Link auf dem Desktop erstellen.

Aber wenn ich das richtig verstehe, kann man mit diesem Code immer ein Programm angeben.
Könnte mir jemand von Euch dabei helfen.

Oder ist das mit diesem Code garnicht möglich?
Wenn du etwas anderes machen willst, musst du den Code schon anpassen......

Ich würde da eine Sub draus machen und sie gezielt mit den einzutragenden Werten aufrufen.
01.
  
02.
Option explicit 
03.
Dim objShortcut 
04.
Dim objShell   : Set objShell = WScript.CreateObject("Wscript.Shell") 
05.
Dim strDesktop : strDesktop = objShell.SpecialFolders("Desktop") 
06.
 
07.
Sub MkShortcut(strShortCut, strTarget, strDesc, strWorkDir) 
08.
  Set objShortcut =objShell.CreateShortcut(strShortCut) 
09.
  objShortcut.TargetPath = strTarget 
10.
  objShortcut.Description = strDesc 
11.
  objShortcut.WorkingDirectory = strWorkDir 
12.
  objShortcut.Save 
13.
End Sub 
14.
 
15.
MkShortCut  strDesktop & "\" & "Mp3tag" & ".lnk", _ 
16.
            """C:\Program Files (x86)\Mp3tag\Mp3tag.exe""", _ 
17.
            "Musik", _ 
18.
            strDesktop
MkShortCut jeweils mit anderen Werten aufrufen.
Ich habe die einzelnen Werte nur der Übersicht halber jeweils in eine neue Zeile gesetzt.

Gruß
LotPings
Bitte warten ..
Mitglied: Tommylik
25.03.2011 um 10:10 Uhr
Hallo LotPings,

Vielen Dank für deine Hilfe.

Ja hier habt ja so recht dann kann man das ausführlicher machen
und es schleichen sich keine Fehler hinein.

Mein Fehler war ein vergessendes Wort:

> Zitat von Tommylik:

> Ich würde gerne mehr als nur ein Link auf dem Desktop erstellen.

Ich meinte natürlich gleichzeitig mehrere Links auf dem Desktop erstellen.

Es sind einige Rechner die werden mit einer speziellen CMD-Datei bearbeitet.
Dabei soll bei jedem Rechner auch noch die gleichen Desktop-Links vorhanden sein.
Meine Idee war es aus der update.cmd ein Aufruf auf die VBS-Datei zu machen
und bei jedem Rechner werden die gleichen Verknüpfungen zu den Programmen erstellt.

Sorry für meine falsche vorgehensweise.

Vielen Dank noch mal für Eure Hilfe.

Mfg Tom
Bitte warten ..
Mitglied: bastla
25.03.2011 um 10:45 Uhr
Hallo Tommylik & LotPings!

Da es nun schon hier weiter geht, auch noch die (ungetestete) Variante "Parameter per Batch":
01.
Option Explicit 
02.
Dim a: Set a = WScript.Arguments 
03.
Dim objShortcut 
04.
Dim objShell   : Set objShell = WScript.CreateObject("Wscript.Shell") 
05.
 
06.
Set objShortcut =objShell.CreateShortcut(a(0)) 
07.
objShortcut.TargetPath = a(1) 
08.
objShortcut.Description = a(2) 
09.
objShortcut.WorkingDirectory = a(3) 
10.
objShortcut.Save
Aufzurufen wäre das Script dann per
cscript //nologo C:\Scripts\MakeShortcut.vbs "%userprofile%\Desktop\Mp3tag.lnk" "C:\Program Files (x86)\Mp3tag\Mp3tag.exe" "Musik" "%userprofile%\Desktop"
Grüße
bastla
Bitte warten ..
Mitglied: Tommylik
25.03.2011 um 11:00 Uhr
Hallo bastla,

Vielen Dank für deine Hilfe. Muy rapido....

Verstehe ich das richtig das ich diese VBSScript,
nur noch mit einem anderem Programmnamen aufrufen brauch?

Also z.B.:

Mp3tag.exe
notepad.exe
firefox.exe

und die links werden dann nach und nach auf dem Desktop erstellt?

Ich tue mich mit VBS sehr schwer. Dabei soll es recht einfach sein.

Also noch vielen Dank für deine Hilfe.

Mfg Tom
Bitte warten ..
Mitglied: bastla
25.03.2011 um 12:13 Uhr
Hallo Tommylik!
Verstehe ich das richtig das ich diese VBSScript,
nur noch mit einem anderem Programmnamen aufrufen brauch?
Es müssen beim Aufruf immer alle 4 Parameter (Verknüpfungsdatei, Programmdatei, Beschreibung und "Ausführen in"-Ordner) übergeben werden (stehen dann im Script in a(0) bis a(3)) angegeben werden - ansonsten: ja

Grüße
bastla
Bitte warten ..
Mitglied: Tommylik
25.03.2011 um 16:12 Uhr
Hallo bastla,

Vielen Dank für deine Hilfe da bin ich ja auf dem richtigem Weg.

Ich hab mir eine Textdatei erstellt und darin werden dann die Programme über folgenden Code aufgerufen.

01.
@echo off & setlocal 
02.
cls 
03.
for /F "delims=" %%i in (d:\Internet_Seiten\Batch\programme.txt) do cscript //nologo d:\Internet_Seiten\Batch\ms.vbs %%i
"C:\Users\Tom\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\Mp3tag.lnk" "C:\Program Files (x86)\Mp3tag\Mp3tag.exe" Musik "C:\Documents and Settings\vwuser\Application Data\Microsoft\Internet Explorer\Quick Launch"
Funktioniert gut so, aber ein Sache stört mich und zwar ist das die Textdatei.
Die Zeilen darin sind sehr lang. Sehr unübersichtlich, da schleicht sich schnell ein Fehler hinein.

Vielleicht hast du ja eine bessere Idee. Ansonsten ist das hier OK.

Vielen Dank noch mal für deine Hilfe.

MFg Tom
Bitte warten ..
Mitglied: bastla
25.03.2011 um 17:17 Uhr
Hallo Tommylik!

Du könntest die Pfade in der Textdatei verkürzen, indem Du (vorhandene oder im Batch erstellte) Variable benutzt - zB (ungetestet):
"%appdata%\%QL%\Mp3tag.lnk" "%P86%\Mp3tag\Mp3tag.exe" Musik "%appdata%\%QL%"
Im Batch müsstet Du dann sicherstellen, dass %QL% und %P86% vorweg den richtigen Wert erhalten:
01.
@echo off & setlocal 
02.
set "P86=C:\Program Files (x86)" 
03.
set "QL=Microsoft\Internet Explorer\Quick Launch" 
04.
for /f "delims=" %%i in (d:\Internet_Seiten\Batch\programme.txt) do call cscript //nologo d:\Internet_Seiten\Batch\ms.vbs %%i
Grüße
bastla
Bitte warten ..
Mitglied: Tommylik
26.03.2011 um 03:39 Uhr
Hallo Bastla,

Vielen Dank nochmal für die verbesserte Variante.
Funktioniert super.

Vielen Dank.

Mfg Tom
Bitte warten ..
Ähnliche Inhalte
VB for Applications

Mehrere Shortcuts, einen Sammel-Ordner und neue .ico auf dem Desktop anlegen

gelöst Frage von Seger85VB for Applications27 Kommentare

Moin zusammen, ich habe hier im Forum schon sehr viele Codeschnipsel gefunden, doch irgendwie bekomme ich es einfach nicht ...

Windows 10

Info-Center Desktop Shortcut immer im Vordergrund

gelöst Frage von beta-way-of-lifeWindows 107 Kommentare

Hallo, ich habe bei einem neuen PC ein Problem das mich zur Verzweiflung treibt Und zwar geht es um ...

Batch & Shell

Shortcut Batchfile

Frage von donmanolitoBatch & Shell1 Kommentar

Ich hab hier ein Batchfile das Shortcuts per VBScript erstellen soll. Leider funktionierts nicht so recht und ich kann ...

Microsoft Office

Outlook 2010 - Shortcut anlegen zum Konvertieren einer Mail ins HTML-Format

gelöst Frage von SinzalMicrosoft Office5 Kommentare

Hallo Admins, ich habe eine Frage zu Outlook 2010: Wenn ich auf eine E-Mail im Nur-Text-Format antworte, so ist ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 19 StundenWindows 103 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 21 StundenAdministrator.de Feedback16 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 1 TagHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Server-Hardware
Welche Rolle spielt Design bei Enterprise IT Hardware?
Frage von ApolloXServer-Hardware17 Kommentare

Ich arbeite für einen internationalen Elektronikhersteller in der Forschung und meine Aufgabe ist es, Feedback von Nutzern in Hinsicht ...

Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Windows Netzwerk
Backup über WAN
Frage von petereWindows Netzwerk11 Kommentare

Hallo, ich muss aus einem entfernten WAN (synchrone 1Gbit) Daten sichern. Dabei handelt es sich sowohl um wenige große ...