Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Verknüpfung in vbs erzeugen

Frage Entwicklung VB for Applications

Mitglied: Domain-Jane

Domain-Jane (Level 1) - Jetzt verbinden

31.01.2015, aktualisiert 18:25 Uhr, 736 Aufrufe, 9 Kommentare

Schönen guten Nabend!

Seit einer Weile versuche ich, mir mittels vbs eine Verknüpfung erzeugen zu lassen.
Dazu habe ich mir die Anleitungen von bastla durchgelesen.
Mein Problem ist allerdings, dass ich als Speicherort "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\shortcut.lnk" brauche
und als Ziel den Pfad, indem die vbs ausgeführt wird & \bum.exe (entspräche in Batch: %~dp0\bum.exe)

Bisher habe ich es so versucht:

01.
 
02.
Set oShell = CreateObject("Wscript.Shell") 
03.
strUserProfile = oShell.ExpandEnvironmentStrings("%USERPROFILE%") 
04.
 
05.
 
06.
Set fso = CreateObject("Scripting.FileSystemObject") 
07.
ZielDingens = fso.GetParentFolderName(WScript.ScriptFullName) 
08.
 
09.
 
10.
Set objShell = CreateObject("WScript.Shell") 
11.
sShortcut = (strUserProfile & "\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\shortcut.lnk") 
12.
set objLink = objShell.CreateShortcut(sShortcut) 
13.
objLink.TargetPath = "ZielDingens" 
14.
objLink.Save 
15.
 
Die Verknüpfung wird mit dem richtigen Pfad erstellt, aber das Ziel stimmt nicht.
Er löst die Variable "ZielDingens" nicht auf und schreibt noch den Pfad zum Desktop davor.

Wäre echt super, wenn ihr ne spontane Idee hättet.
Mitglied: Domain-Jane
31.01.2015, aktualisiert um 18:24 Uhr
Im Moment der Frageerstellung noch einmal kurz nachgedacht und Zzzzong - Fehler gefunden.
So geht's:

01.
 
02.
Set oShell = CreateObject("Wscript.Shell") 
03.
 strUserProfile = oShell.ExpandEnvironmentStrings("%USERPROFILE%") 
04.
 
05.
 
06.
 Set fso = CreateObject("Scripting.FileSystemObject") 
07.
 ZielDingens = fso.GetParentFolderName(WScript.ScriptFullName) 
08.
 
09.
 
10.
 Set objShell = CreateObject("WScript.Shell") 
11.
 sShortcut = (strUserProfile & "\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\shortcut.lnk") 
12.
 set objLink = objShell.CreateShortcut(sShortcut) 
13.
 objLink.TargetPath = (ZielDingens & "\bum.exe") 
14.
 objLink.Save 
15.
 
(Ich habe nur Zeile 13 geändert)

Für Verbesserungsvorschläge bin ich immer offen.

Schönen Abend!
Bitte warten ..
Mitglied: Dani
31.01.2015 um 18:39 Uhr
Guten Abend,
Für Verbesserungsvorschläge bin ich immer offen.
Warum nicht einfach mit Powershell? Ist in 3-4 Zeilen erledigt.


Gruß,
Dani
Bitte warten ..
Mitglied: Domain-Jane
31.01.2015 um 19:06 Uhr
Hi Dani,
Naja, Powershell-Skripte brauchen doch immer Admin-Rechte oder nicht?
Das würde bei den Benutzern zu Problemen führen.
Bitte warten ..
Mitglied: Dani
31.01.2015 um 19:29 Uhr
Braucht genau die selben Rechte wie dein VBS.
Wie kommst du auf solch eine Aussage?
Bitte warten ..
Mitglied: Eintagsfliege
31.01.2015 um 20:41 Uhr
Hallo Domain-Jane!

Für Verbesserungsvorschläge bin ich immer offen.
z.B.:
01.
sShortcut = objShell.SpecialFolders("StartUp") & "\shortcut.lnk"
Ansonsten reicht es auch, wenn das Shell-Object nur einmal zu erzeugt wird...

Grüße Dieter
Bitte warten ..
Mitglied: Domain-Jane
31.01.2015 um 20:42 Uhr
Zitat von Dani:

Braucht genau die selben Rechte wie dein VBS.
Wie kommst du auf solch eine Aussage?

Vermutlich durch Unwissenheit. ;)

Beim Ausführen von .ps1 Skripten kommt standardmäßig die Meldung, dass die Ausführung solcher
Skripte auf dem System deaktiviert ist.
Natürlich könnte man sich hier mit "Set-ExecutionPolicy Unrestricted" behelfen.
Allerdings setzt das wiederum Admin-Rechte voraus.
Bitte warten ..
Mitglied: Domain-Jane
31.01.2015 um 21:01 Uhr
Zitat von Eintagsfliege:

z.B.:
01.
> sShortcut = objShell.SpecialFolders("StartUp") & "\shortcut.lnk" 

Ansonsten reicht es auch, wenn das Shell-Object nur einmal zu erzeugt wird...

Grüße Dieter

Hi Dieter,

puh, das ist natürlich sehr elegant und hätte mir ein paar schweißtreibende Sekündchen erspart!

Also hier noch einmal die aktuelle Version:
Wenn jetzt noch jemand kommt und dafür nen Einzeiler rauskloppt, werde ich aber ungemütlich! ;)

01.
 
02.
Set oShell = CreateObject("Wscript.Shell") 
03.
 
04.
Set fso = CreateObject("Scripting.FileSystemObject") 
05.
ZielDingens = fso.GetParentFolderName(WScript.ScriptFullName) 
06.
 
07.
sShortcut = objShell.SpecialFolders("StartUp") & "\shortcut.lnk" 
08.
set objLink = oShell.CreateShortcut(sShortcut) 
09.
objLink.TargetPath = (ZielDingens & "\bum.exe") 
10.
objLink.Save 
11.
 
Bitte warten ..
Mitglied: Dani
31.01.2015 um 21:18 Uhr
Selbstverständlich, standardmäßig dürfen solche Skripte nicht ausgeführt werden.
Einmal aktiviert, kannst du loslegen.


Gruß,
Dani
Bitte warten ..
Mitglied: Eintagsfliege
01.02.2015 um 08:16 Uhr
Hallo Domain-Jane!

Kann man so lassen, nur noch in Codezeile 7 'objShell' durch 'oShell' ersetzt, dann sollte es auch funktionieren

Grüße Dieter
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
Eventlog Druckjobs mit VBS auslesen (2)

Frage von joni2000de zum Thema Batch & Shell ...

VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Internet
gelöst Wlan erzeugen mit Internet von einem USB Modem Stick (8)

Frage von berli6 zum Thema Internet ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (14)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...