phlegma
Goto Top

batchvbs startmenüverknüpfung erstellen

hi,
bin immernoch bei meiner installation... face-smile
allerdings schon weiter...!
nun folgendes problem mit meinem vbs script dass aus der batch erstellt wird die das prog installiert

hier mein schnipsel:
@echo off
set progtitel=XXX
set progname=XXX XXX XXX
set progdir=XXX
set progexe=XXX.exe
set zielpfad=c:\XXX

echo '                  MakeShortCut.vbs >%temp%\MakeShortCut.vbs  
echo. >>MakeShortCut.vbs
echo Const strProgramTitel="%progtitel%" >>%temp%\MakeShortCut.vbs  
echo Const strProgram="%zielpfad%\%progexe%" >>%temp%\MakeShortCut.vbs  
echo Const strProgramOrt="%zielpfad%" >>%temp%\MakeShortCut.vbs  
echo Const StrProgramDescript="%progname%" >>%temp%\MakeShortCut.vbs  
echo Const strProgramMenuOrt="Programme\%progdir%" >>%temp%\MakeShortCut.vbs  
echo Dim objShortcut >>%temp%\MakeShortCut.vbs
echo Dim objShell >>%temp%\MakeShortCut.vbs
echo Set objShell= WScript.CreateObject("Wscript.Shell") >>%temp%\MakeShortCut.vbs  
echo strLPfad=objShell.SpecialFolders("Startmenu") >>%temp%\MakeShortCut.vbs  
echo Set objShortcut=objShell.CreateShortcut(strLPfad ^& _ >>%temp%\MakeShortCut.vbs
echo "\" ^& strProgramMenuOrt ^& "\" ^& strProgramTitel ^& ".lnk") >>%temp%\MakeShortCut.vbs  
echo objShortcut.TargetPath= strProgram >>%temp%\MakeShortCut.vbs
echo objShortcut.Description= strProgramDescript >>%temp%\MakeShortCut.vbs
echo objShortcut.WorkingDirectory = strProgramort >>%temp%\MakeShortCut.vbs
echo objShortcut.Save >>%temp%\MakeShortCut.vbs

cscript //nologo %temp%\MakeShortCut.vbs
:: del %temp%\MakeShortCut.vbs >nul 2>nul


wie man sieht bin ich seit letztem mal vorangeschritten... allerdings bekomm ich folgenden fehler.... hattte noch andere aber mit diesem komm ich nicht weiter

der fehler der angezeigt wird:
C:\DOKUME~1\Justus\LOKALE~1\Temp\MakeShortCut.vbs(16, 1) WshShortcut.Save: Die Verknüpfung "C:\Dokumente und Einstellungen\Justus\Startmenü\Programme\XXX\XXX.lnk" wurde nicht gespeichert.

der script hat gut für den desktop funktionert aber nachdem ich für das startmenu geändert habe wie ihr seht.. geht er nicht mehr

wem fällt der fehler ins auge?
oder wer hat ne bessere lösung? bitte posten! würd mich über hilfe freuen! Ph

Content-ID: 48345

Url: https://administrator.de/contentid/48345

Ausgedruckt am: 13.11.2024 um 06:11 Uhr

bastla
bastla 09.01.2007 um 19:51:51 Uhr
Goto Top
Hallo Phlegma!

Den Ordner "C:\Dokumente und Einstellungen\Justus\Startmenü\Programme\XXX", in welchem der Link erstellt werden soll, gibt es schon?

Grüße
bastla
Biber
Biber 09.01.2007 um 19:58:54 Uhr
Goto Top
wem fällt der fehler ins auge?
...wieder zu spät... *grmpf*
Der Unterordner XXX muss vorher angelegt werden.
Da der SpecialFolder("Startmenu") ja im VBS ermittelt wurde, muss Du im VBS auch noch ein FileSystemObject und damit diesen Unterordner anlegen.

Grüße
Biber
maneich
maneich 09.01.2007 um 20:36:53 Uhr
Goto Top
Hallo,

also ich weiß nicht, warum das immer alles so kompliziert gemacht wird.

set WshShell = WScript.CreateObject("WScript.Shell")
strStartMenu = WshShell.SpecialFolders("StartMenu")
set oShellLink = WshShell.CreateShortcut(strStartMenu & "\I_O.lnk")
oShellLink.TargetPath = "Zielpfad\Datei"
oShellLink.WindowStyle = 1
oShellLink.Hotkey = "Ctrl+q"
oShellLink.IconLocation = "Notepad.exe, 0"
oShellLink.Description = "I_O"
oShellLink.WorkingDirectory = strTargetPath
oShellLink.Save

Den Hotkey (Tastenfolge zum Aufruf) kannst du auch weglassen. Klappt 100 pro.

MfG maneich
Phlegma
Phlegma 09.01.2007 um 20:52:48 Uhr
Goto Top
danke ! ich versteh meinen fehler... batch befehl md und den ordner erstellen dann gehts...

@ biber hatte deine meldung mit dem befehl für filesystem nicht gesehn und einfach batch befehl genommen geht trotzdem...

hier nochmal das endprodukt zur verknüpfungserstellung
@echo off
set progtitel=XXX
set progname=XXX XXX XXX
set progdir=XXX
set progexe=XXX.exe

set zielpfad=c:\XXX


md "%userprofile%\Startm~1\Programme\%progdir%\"  
echo '                  MakeShortCut.vbs >%temp%\MakeShortCut.vbs  
echo. >>MakeShortCut.vbs
echo Const strProgramTitel="%progtitel%" >>%temp%\MakeShortCut.vbs  
echo Const strProgram="%zielpfad%\%progexe%" >>%temp%\MakeShortCut.vbs  
echo Const strProgramOrt="%zielpfad%" >>%temp%\MakeShortCut.vbs  
echo Const StrProgramDescript="%progname%" >>%temp%\MakeShortCut.vbs  
echo Const strProgramMenuOrt="Programme\%progdir%" >>%temp%\MakeShortCut.vbs  
echo Dim objShortcut >>%temp%\MakeShortCut.vbs
echo Dim objShell >>%temp%\MakeShortCut.vbs
echo Set objShell= WScript.CreateObject("Wscript.Shell") >>%temp%\MakeShortCut.vbs  
echo strLPfad=objShell.SpecialFolders("Startmenu") >>%temp%\MakeShortCut.vbs  
echo Set objShortcut=objShell.CreateShortcut(strLPfad ^& _ >>%temp%\MakeShortCut.vbs
echo "\" ^& strProgramMenuOrt ^& "\" ^& strProgramTitel ^& ".lnk") >>%temp%\MakeShortCut.vbs  
echo objShortcut.TargetPath= strProgram >>%temp%\MakeShortCut.vbs
echo objShortcut.Description= strProgramDescript >>%temp%\MakeShortCut.vbs
echo objShortcut.WorkingDirectory = strProgramort >>%temp%\MakeShortCut.vbs
echo objShortcut.Save >>%temp%\MakeShortCut.vbs

cscript //nologo %temp%\MakeShortCut.vbs
del %temp%\MakeShortCut.vbs >nul 2>nul

echo fertig!
pause >nul

Ph

PS
... hab mir bei versuchen mein startmenü zerschossen^^ ..
wenn jmd kurz einen batch hat um das wiederherzustellen indem die ordner abgeklappert werden und verknüpfungen im startmenü zu den exe dateien erstellt werden
oder eine lösung wie ich das schnell wiederbekomme...

hatte rd befehl benutzt um den startmenu eintrag zu löschen und für den ordner die variable falsch eingegeben.. face-sad
dadurch wurde nichts eingesetzt und der ganze programme ordner gelöscht....

naja ansonsten bau ich mir das wichtigste selbst zusammen... ausmisten muss ich eh...

ich mein nur wem was einfällt.. freu mich über hilfe...!

vielen dank in jedem fall für alles!
bastla
bastla 10.01.2007 um 23:40:34 Uhr
Goto Top
Hallo Phlegma!

In VBScript könntest Du mit der ".SubFolders"-Collection bei "C:\Programme" ansetzen und jeden Unterordner (mit der ."Files"-Aufzählung) auf Exe-Dateien absuchen - wie man mit dem dann gefundenen Pfad Shortcuts erstellt, wüsstest Du ja. face-wink

Für die manuelle Vorgangsweise á la "2 Explorer-Fenster und Drag and Drop der Exe-Dateien (mit Strg-Umsch)" hätte ich vielleicht noch etwas anzubieten: Um das lästige "Verknüpfung mit" vor dem Namen zu vermeiden, bräuchtest Du einen Registry Eintrag "Link" (REG_BINARY, Werte 00 00 00 00) unter "Explorer" (oder Du verwendest gleich diese .reg-Datei):
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer]
"Link"=hex:00,00,00,00  

Auf jeden Fall: Gutes Gelingen.

Grüße
bastla