phlegma
Goto Top

Batch (variable) Desktopverknüpfung erstellen

hi leutz,
melde mich wieder mit meiner installation... diesesmal geht es um verknüpfungen
also LNK dateien die bei variablem installtionsort auch variabel sein müssen
microsoft win95 shortcut.exe war meine erste idee, hat allerdings nicht funktioniert..

ich möchte eine verknüpfung von dem programm das ich installiere auf dem desktop erstellen.
per variable wird das programm irgendwo auf die festplatte kopiert (kann man sich aussuchen) allerdings kann ich nicht für jeden ort eine vorgefertigte verknüpfung mitliefern die dann kopiert wird, sie muss erstellt werden.

ich habe zuerst versucht rauszubekommen was in einer LNK datei eigentlich drin steht, das ist allerdings hauptsächlich kryptisch und so fällt der befehlt echo XX > shortcut.lnk weg

danach habe ich weitergegoogelt und bin auf die win95 shortcut.exe gestoßen und ausprobiert... leider ohne erfolg (wobei sich das programm ausführen ließ und hilfe angezeigt hat.. allerdings die datei die es verknüpfen sollte nicht fand)

nun brauche ich hilfe was ich bei diesem programm falsch mache..vllt hat da jmd erfahrung?

oder eine lösung wie ich eine desktopverknüpfung erstellen kann

würd mich freuen wenn jmd was einfällt und mir postet!

MfG, Ph

Content-ID: 47255

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

Ausgedruckt am: 26.11.2024 um 02:11 Uhr

Biber
Biber 21.12.2006 um 19:53:42 Uhr
Goto Top
Moin Phlegma,

ich weiß ja nicht, was Firma M$ zum Shortcut-Anlegen empfiehlt - ich empfehle in solchen Fällen eher den Kollegen bastla...

Der hat neulich in einem Thread von User cbli sinngemäß folgenden Schnipel gepostet:

'-----------snipp MakeShortCut.vbs  
>type f:\VBS_Beispiele\MksoftwareSCut.vbs
Const strProgramtitel="Software5"        ' anpassen  
Const strProgram ="C:\WINDOWS\System32\appwiz.cpl"  'anpassen  
Dim objShortcut
Dim objShell
Set objShell= WScript.CreateObject("Wscript.Shell")  
strLPfad=objShell.SpecialFolders("Desktop")  
Set objShortcut=objShell.CreateShortcut(strLPfad & "\" & strProgramtitel & ".lnk")  
objShortcut.TargetPath= strProgram
objShortcut.Description= strProgramtitel
' objShortcut.IconLocation = strProgram & ", -1500"      'anpassen  

objShortcut.Save

Den (Schnipsel) solltes Du mit kleinen Änderungen zum Fliegen bringen können.

HTH Biber
Phlegma
Phlegma 21.12.2006 um 20:05:16 Uhr
Goto Top
hui,
ok nun habe ich einen ansatz aber ein paar probleme...
1. mein wissen über vbs is leider winzig da ich erst am anfang einer programmiererlaufbahn stehe
2. ist vbs nicht meist automatisch deaktiviert weil es leicht ausgenutzt werden kann?

nun bitte ich um genauere erklärung und anweisung sodass ich das auch hinbekomme face-smile

Ph
gemini
gemini 21.12.2006 um 20:40:04 Uhr
Goto Top
Hallo Phlegma,

Roland Weisskopf hat ein anscheinend sehr komfortables und pflegeleichtes Shortcutmanagement geschrieben. Ist allerdings kein Batch sondern VBScript.

HTH,
gemini
Phlegma
Phlegma 21.12.2006 um 20:46:51 Uhr
Goto Top
oki,
hört sich nahc ner ähnlichen antowort an wie biber..
ich werd mir das mal anschauen! danke!

allerdings klärt das noch nicht meine frage ob vbs nicht meist deaktiviert ist..?

wenn dann könnte man den registry wert der das verbietet ändern... und am ende wieder setzen... aber hilft das ohne neustart?
und wie fragt man ab ob ein registrywert vorhanden ist und wieviel er beträgt?
gemini
gemini 21.12.2006 um 20:53:30 Uhr
Goto Top
allerdings klärt das noch nicht meine frage ob vbs nicht meist deaktiviert ist..?
Wenn du der Admin bist solltest du das wissen; wenn du es nicht bist solltest du den Admin fragen.

Grundlegend ist es wohl ähnlich, da beide in VBS geschrieben sind.
Soweit ich mich erinnere arbeitet er aber mit zwei Dateien. Schau es dir einfach an.
Phlegma
Phlegma 21.12.2006 um 21:03:34 Uhr
Goto Top
nun, ich bin admin meines eigenen computers aber wie ich in der einführung geschrieben habe, erstelle ich eine installation, also eine batch datei auf einer cd die dateien auf den computer kopiert und zwar nicht nur auf meinen...

[ und wenn du jetzt sagst: " dann benutz doch so einen installation builder " dann kann ich nur antowrten das ich "stur" bin und mir gerne mein batch offen halten möchte, zudem find ich diese builder doof xD ]

also nochmal zurück, ich hab mir das angeschaut und bin wie eben bei dem schnipsel von biber überfordert... und finde nicht, dass das so kompliziert gemacht werden muss..
danke trotzdem!
Ph
Biber
Biber 21.12.2006 um 21:34:25 Uhr
Goto Top
Moin Phlegma,

das ist ja auch nicht "der Schnipsel von Biber", sonst wär es ja auch nicht kompliziert.
Ist von bastla - ich schreibe lieber einfache Batch-Oneliner.
Da bekomm ich auch nicht dauernd "Syntaxerror in line 12" oder ähnlich Schlimmes... face-wink

Geht aber nu' mal bei Shortcuts nich'.

Also entweder:
- die drei Stellen in dem Schnipsel anpassen (wie Dein Programm heißt und wo Du es abgeladen hast, weißt Du doch, oder?)
- das Dingen erzeugen aus dem Batch mit "Echo bla..>>%temp%\MkSCut.vbs", das trau ich Dir zu
- aufgerufen wird es wieder aus dem Batch mit "cscript //nologo %temp%\MkSCut.vbs"
- wenn es kein VBS beim User/der Userin gibt, gibt es kein Desktop-Icon dort.
Das Leben ist nun mal hart.

Wenn Du meinst, dass Du mit einer der Freeware-SCut.exe/makeSCut.exe'n besser klarkommst... try it und poste Deine Erfahrungen.

Grüße
Biber
Phlegma
Phlegma 21.12.2006 um 22:07:27 Uhr
Goto Top
hi,
also gut..
ich werd mich mit diesem vbs auseinandersetzen...

und dieses shortcut.exe win95 bekomm ich au noch zum laufen sofern das möglich is .. meine idee is auch ne verknüpfung zu erstellen, die auf desktop zu kopieren und dann zu editiern mit diesem prog.. mal sehn

dann stellt sich noch dass problem das ganze im startmenü zu machen wobei ich da auch nur kopier erfahrung hab face-sad

in jedem fall werd ich mein resultat hier posten..


trotzdem bitte ich um hilfe bzw tipps wenn jmdm was einfällt !!


vielen dank biber!

Ph
Biber
Biber 21.12.2006 um 22:21:48 Uhr
Goto Top
Nachtrag, Phlegma,

hatte ich vorhin nicht so schnell griffbereit, aber auf http://www.coffeecomputing.com , die auch irgendeine ShortCut-Lösung namens SCut11zip anbieten, hatte ich mal gelesen:
The Microsoft SHORTCUT.EXE program provided on the Win95 CD has a few problems:
1) Does not allow wildcards when changing existing links
2) Does not work under Windows NT
3) Does not have the option to search sub directories

Punkt 2 könnte bedeuten, dass Du dieses Win95-Tool nicht verwerten kannst (die haben das 1997 geschrieben!).
Wie bei den meisten M$-Tools ist ja nur gewährleistet, dass es Festplattenplatz beansprucht, aber nichts von Auf- oder Abwärtskompatibilität.
Oft sind die ja nicht mal kompatibel zur der Version, bei der es mit ausgeliefert wird.

Grüße
Biber
Phlegma
Phlegma 21.12.2006 um 23:07:03 Uhr
Goto Top
schade wirklich.. hätte mir geholfen...
nun werde mich mit dem vbs befassen .. braucht bisel zeit.. bleibt noch offen:
allerdings klärt das noch nicht meine
frage ob vbs nicht meist deaktiviert ist..?

wenn dann könnte man den registry wert
der das verbietet ändern... und am ende
wieder setzen... aber hilft das ohne
neustart?
und wie fragt man ab ob ein registrywert
vorhanden ist und wieviel er beträgt?

danke, Ph
Biber
Biber 21.12.2006 um 23:43:22 Uhr
Goto Top
Also mal im Ernst, Phlegma,

wenn dann könnte man den registry wert der das [vbscript] verbietet ändern...
Wenn denn VbScript verboten wäre, was ja nun schon exotisch anmutet, außer wenn Du Deine Software in einer geschlossenen Anstalt installieren würdest, aber wenn es nun so wäre, WTF treibt Dich dann zu der Annahme, Du könntest eben mal kurz per Reg.exe-Aufruf diese Bremse lösen???
Oder installierst Du Deinen Krempel auf PCs, die Du nicht mal kennst, unter Admin-Rechten?

und wie fragt man ab ob ein registrywert vorhanden ist und wieviel er beträgt?
Wie man/frau einen Registry-Wert abfragt mit Reg.exe oder RegEdit.exe, würde mehrfach hier gepostet - sogar als Tutorial. Forumssuche.
"Wieviel er beträgt?" kann ich so nicht beantworten - meistens 0 oder 1. In der Regel jedenfalls kleiner als 42.

Grüße
Biber
Phlegma
Phlegma 05.01.2007 um 16:03:44 Uhr
Goto Top
hi, ich melde mich zurück!

nun nach längerer suche konnte ich nichts als beispiele über dieses vbs finden heute bin ich wieder auf den schnipsel von bastla zurückgekommen...

erste meldung fehler 2 zeile
>type f:\VBS_Beispiele\MksoftwareSCut.vbs

hab dann ein ' davor um es auszuschalten.. und sie an etwas passierte...
ich bekam eine verknüfpung auf dem desktop.. !
allerdingsweitere probleme:
hab das dann angepasst, auf mein programm.. nun die verknüpfungszeile "ausführen in fehlt!
so funktioniert das ganze nicht es muss ein befehl fehlen...

ich brauche nun diesen befehl der wohl ähnlich wie objShortcut.TargetPath= strProgram
etwa objShortcut.executePath= strProgram heißen muss ..weiß jmd diesen befehl?

oje und dann brauch ich die selbe variable verknüpfung für das startmenü da fehlt mir auch ein befehl ähnlich wie strLPfad=objShell.SpecialFolders("Desktop") gibt es
strLPfad=objShell.SpecialFolders("Startmenu") ??

dann würde ich gerne noch einen hinweis hinterlegen wo ich mein program installiert hab sei es eine txt datei oder ein registry eintrag auf den/die ich bei erneutem ausführen der installation zugreifen kann um zu sehn dass das programm schon installiert bzw wo es installiert ist sehen kann, deshalb auch das einlesen vorher; jmd ne idee?

freu mich über hilfe!, Ph

hum, wenn ich mich undeutlich ausgedrückt hab erklär ich das gerne genauer...
Phlegma
Phlegma 05.01.2007 um 19:15:59 Uhr
Goto Top
hm mein browser hat gesponnen.. sry doppelpost..

hat niemand ne idee? bzw antwort face-sad
36539
36539 05.01.2007 um 20:27:34 Uhr
Goto Top
ich möchte eine verknüpfung von dem programm das ich installiere auf dem desktop erstellen.

ich mach es so: (am konkreten Bsp. eines Tools von mir)

set wshshell = CreateObject("WScript.Shell")
'Ort des Windowsdesktops
desktopdir = wshshell.SpecialFolders(0)
neuerlink = desktopdir & "\NeroClean_Master.lnk"
set link = wshshell.Createshortcut(neuerlink)
link.TargetPath = "C:\WIN-Scripte\NeroClean_Master\NeroClean_Master.exe"
link.Save
'MsgBox ("Verknüpfung zu NeroClean_Master.exe wurde auf dem Desktop angelegt!")

diese *.vbs verwende ich in allen Installations-Dateien die ich mir baue.
Am konkreten Bsp.:
Die eigentliche "NeroClean_Master_installer.exe" erstelle ich mit dem WinZip Self-Extractor.
Diese enthält dann die selbstinstallierende "NeroClean_Master_extrakt.exe" (siehe unten).

@echo off
mode 82,20
color fc
rem eine vorhandene Installation wird gelöscht, der Link an der einmal gewählten Desktop-Position ersetzt.
if exist "C:\WIN-Scripte\NeroClean_Master" rd /s /q "C:\WIN-Scripte\NeroClean_Master" > nul
"NeroClean_Master_extrakt.exe"
"NeroClean_Master_auf_Desktop.vbs"
cls
echo.
echo.
echo.
echo
echo ^| ^|
echo ^| ^|
echo ^| "NeroClean_Master" ^|
echo ^| ^|
echo ^| ^|
echo ^| Verknpfung zum Programm wurde auf des Desktop angelegt ^|
echo ^| ^|
echo ^| ^|
echo ^| ^|
echo
echo.
echo.
echo.
pause

gruß
onegasee59
Phlegma
Phlegma 05.01.2007 um 21:10:56 Uhr
Goto Top
oO
nett von dir dass du mir antwortest.. leider gehst du nicht direkt auf meine frage ein...
du erklärst mir wie ich eine verknüpfung erstelle.. allerdings nicht unter den umständen die ich habe...
könnte mir jmd obige fragen (vorletzter post von mir) beantworten bitte?

danke trotzdem onegasee59!

Ph
36539
36539 05.01.2007 um 21:49:45 Uhr
Goto Top
nett von dir dass du mir antwortest.. leider gehst du nicht direkt auf meine frage ein...

hmm Sorry wenn ich Dich missverstanden habe, aber am besten postest Du mal wie Dein Code-Schnippsel jetzt aussieht!

gruß
onegasee59
Phlegma
Phlegma 05.01.2007 um 22:43:10 Uhr
Goto Top
'-----------snipp MakeShortCut.vbs
'>type f:\VBS_Beispiele\MksoftwareSCut.vbs <--- weiß nich was das bringt
Const strProgramtitel="XXX" ' (anpassen) XXX mein prog
Const strProgram ="P:\XXX.exe" '(anpassen)
Dim objShortcut
Dim objShell
Set objShell= WScript.CreateObject("Wscript.Shell")
strLPfad=objShell.SpecialFolders("Desktop")
Set objShortcut=objShell.CreateShortcut(strLPfad & "\" & strProgramtitel & ".lnk")
objShortcut.TargetPath= strProgram
objShortcut.Description= strProgramtitel
' <> hier fehlt wohl noch was
' objShortcut.IconLocation = strProgram & ", -1500" 'anpassen

objShortcut.Save

hmm so sieht er aus... mir fehlt der befehlt der angibt "ausführen in" und später anstatt desktop startmenu.. dann wär ich schon weiter...
36539
36539 05.01.2007 um 23:14:36 Uhr
Goto Top
'-----------snipp MakeShortCut.vbs
'>type f:\VBS_Beispiele\MksoftwareSCut.vbs <--- weiß nich was das bringt

--zitat--
TypeZeigt den Inhalt einer Textdatei an. Verwenden Sie den Befehl type, wenn Sie eine Textdatei anzeigen, sie aber nicht verändern möchten.

Syntax
type [Laufwerk:][Pfad] Dateiname
--zitatende--

Edit---
da fehlt also vor type......nur der LW-Buchstabe - das "<"-Zeichen davor ist vermutlich nur beim zitieren hier entstanden

ich vermute jetzt doch so, mit:

">type f:\VBS_Beispiele\MksoftwareSCut.vbs" --> wird die *.vbs erstellt/gespeichert


' <> hier fehlt wohl noch was

link.TargetPath = "Pfad zur XXX"

gruß
onegasee59
Phlegma
Phlegma 06.01.2007 um 01:03:19 Uhr
Goto Top
ah thx... aber jez weiß ich nich wofür das eigentlich da war das type...auch egal geht ja ohne...
nun zu deinem befehl
link.TargetPath = "Pfad zur XXX"
EDIT: fehler: zeiel 12 zeichen 1 objekt erforderlich link../EDIT
er funktioniert leider nicht.. oderwas mach ich was falsch?
...
objShortcut.TargetPath= strProgram
objShortcut.Description= strProgramtitel
link.TargetPath = "P:\XXXordner"

EDIT: ich hab da ne idee.. statt link vllt objshortcut?/EDIT
danke! Ph
36539
36539 06.01.2007 um 01:08:44 Uhr
Goto Top
link.TargetPath = "Pfad zur XXX" - er funktioniert leider nicht.. oder was mach ich was falsch?

ändere mal in --> link.TargetPath = "P:\XXXordner\Datei.???"

onegasee59
Phlegma
Phlegma 06.01.2007 um 01:12:12 Uhr
Goto Top
hm.. aber es geht doch um das ausfürhen in.. und das link is doch falsch...?


EDIT: HAH objShortcut.WorkingDirectory habs!

juhu die seite is echt hilfreich http://www.johnrostron.co.uk/bill/troubleshooting/programming/windows_s ...
da steht auch gleich mein problem mit startmenu drin
bleibt noch eins:

dann würde ich gerne noch einen hinweis hinterlegen wo ich mein program installiert hab
sei es eine txt datei oder ein registry eintrag auf den/die ich bei erneutem ausführen der
installation zugreifen kann um zu sehn dass das programm schon installiert bzw wo es
installiert ist sehen kann, deshalb auch das einlesen vorher; jmd ne idee?

gruß.. Ph

{und sorry wegen dem komischen zitatpost oben.. ich dachte eig der wird unten anghängt... (fängt mit yeah an)}
Phlegma
Phlegma 06.01.2007 um 01:34:02 Uhr
Goto Top
yeah das funktioniert schonmal... so jetzt brauch ich noch antwort auf idese fragen... werd auch ma bisel googlen.. dachte vllt weiß jmd gleich was...


oje und dann brauch ich die selbe variable
verknüpfung für das startmenü
da fehlt mir auch ein befehl ähnlich wie
strLPfad=objShell.SpecialFolders("Desktop")
gibt es

strLPfad=objShell.SpecialFolders("Startmenu")
??

dann würde ich gerne noch einen hinweis
hinterlegen wo ich mein program installiert
hab sei es eine txt datei oder ein registry
eintrag auf den/die ich bei erneutem
ausführen der installation zugreifen
kann um zu sehn dass das programm schon
installiert bzw wo es installiert ist sehen
kann, deshalb auch das einlesen vorher;

jmd ne idee?


danke für die hilfe! Ph