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

Desktopverknüpfung per VBS ohne Anführungszeichen im Ziel

Frage Entwicklung VB for Applications

Mitglied: WiSch

WiSch (Level 1) - Jetzt verbinden

23.07.2010, aktualisiert 17:07 Uhr, 7985 Aufrufe, 5 Kommentare

Hallo.

Ich habe ein VBS-Script erstellt nach Vorlagen aus diesem Forum hier.
Damit lege ich eine Desktopverknüpfung an, was prinzipiell auch gut funktioniert.
Das Ziel ist jedoch eine lokale URL zu einem Javaprogramm das ich aber direkt über Java und nicht per Umweg über den Browser starten möchte.
Das Script sieht aktuell so aus:

01.
' Verknüpfung auf dem Desktop anlegen per VBS-Scripting 
02.
 
03.
' Variablenvorgabe 
04.
Const strProgrammtitel="NAME" 'Name der Verknüpfung 
05.
Const strProgramm="%windir%\system32\javaws.exe http://<URL>/javaanwendung.jnlp" 'Programm das Verknüpft werden soll 
06.
Const strAusfuehrenIn="%windir%" 'Verzeichnis -Ausführen in- 
07.
Const strIcon="C:\meinicon.ico" 'Eigenes Icon für die Verknüpfung  
08.
 
09.
Dim ObjShell 
10.
Set ObjShell = CreateObject("WScript.Shell") 
11.
ObjShell = msgbox("Wollen Sie eine Desktopverknüpfung anlegen?", +vbYesNo+vbExclamation ,"") 
12.
If ObjShell = vbYes then 
13.
  Dim objShortcut 
14.
  'Dim objShell 
15.
  Set objShell= WScript.CreateObject("Wscript.Shell") 
16.
  strLPfad=objShell.SpecialFolders("Desktop") 
17.
  Set objShortcut=objShell.CreateShortcut(strLPfad & "\" & strProgrammtitel & ".lnk") 
18.
  objShortcut.TargetPath= strProgramm 
19.
  objShortcut.WorkingDirectory= strAusfuehrenIn 
20.
  objShortcut.Description= strProgrammtitel 
21.
  ' objShortcut.IconLocation = strProgram & ", -1500"      'Programmicon verwenden 
22.
  objShortcut.IconLocation = strIcon & ", -1500"      'Eigenes Icon verwenden 
23.
  objShortcut.Save 
24.
End if
Mein Problem ist nun, das die Verknüpfung zwar mein 'strProgramm' als Inhalt hat, allerdings jeweils mit Anführungszeichen
davor und dahinter... ohne würde der Link funktionieren.

Wie bekomme ich die weg?

Und als zusätzliche Frage: Kann ich das sich öffenede Dos-Fenster beim Lauf der VBS unterdrücken?


Danke für Eure Hilfe.
Mitglied: TsukiSan
24.07.2010 um 11:56 Uhr
Hallo WiSch,

was mich erst einmal wundert ist das
%windir%
Und wo hast du denn dein Problem mit den Gänsefüßchen?
In deinem Beispiel wird
strProgramm
doch gar nicht mit " angezeigt?

Gruss
Tsuki
Bitte warten ..
Mitglied: Biber
24.07.2010 um 13:26 Uhr
Moin WiSch,

auch ich verstehe die Frage nicht ganz... ich kann auch nicht nachvollziehen, wo denn Gänsefüsschen zu sehen sind...??

Aber ich würde dennoch mindestens eine Sache ändern.

In die Property "TargetPath" gehört nach meinem ästhetischen Empfinden wirklich nur das "Programm", also bei dir die javaws.exe.
[Anmerkung: Variablen wie %windir% sollten bei einem Desktop-Link (=Kontext ist angemeldeter Benutzer) aufgelöst werden.
Du hast doch den Zugriff auf das User-Environment.]

Die Parameter gehören (ohne zusätzliche Anführungszeichen) in das optionale Property objShortCut.Arguments

Zur Zusatzfrage (VBS ohne sichtbares Fenster laufen lassen) müsste die Forumssuche ein paar Treffer liefern.
Wobei ich nicht ganz durchschaue
a) von wo denn
b) wieso denn mehr als einmal im Leben
du denn diese Shortcut-Erstellung aufrufst.

Grüße
Biber
Bitte warten ..
Mitglied: WiSch
24.07.2010 um 17:02 Uhr
Hallo.

Mehr Details:
Ich habe eine Java-Anwendung (nicht von mir) die ich per URL starten kann.
Dafür soll auf allen Clients im Netz ein Desktoplink zur Verfügung gestellt werden.
Der Aufruf nur der URL alleine funktioniert, öffnet aber immer ein Browserfenster (oder einen neuen Tab im geöffneten Browser).
-> Ist das der IE, dann öffnet sich dieser und schließt nach Java-Programmstart wieder (oder halt nur den entsprechenden Tab).
-> Ist das der FF, dann bleibt der nach Java-Programmstart geöffnet.
Beide möchte ich nicht, deshalb der Start über die javaws.exe.

Bei mir lokal hat der Link nur mit "javaws.exe" nicht funktioiniert, weshalb ich den Pfad davor gepackt habe. Dieser wiederum muß ja nicht zwingend auf allen Clients gleich sein, deshalb das %windir% ...

Doch zurück zum Gänsefüßchen:
Wenn ich das Script hier verwende, dann bekomme ich einen Link der prinzipell genau so ist wie ich Ihn haben möchte, nur funktioniert er leider nicht.
Wenn ich dann über die Eigenschaften im Feld ZIEL die umschließenden Gänsefüßchen vor und hinter dem Ziel entferne und das übenehme, dann funktioniert es...

Wenn ich den Link manuell anlege und das Ziel angebe, dann klappte es auch und Windows fügt nicht automatisch irgendwelche Gänsefüßchen ein.
Also muß das doch irgendwie aus dem Script kommen, oder verstehe ich hier was Grundsätzliches falsch?

Gruß,
WiSch
Bitte warten ..
Mitglied: Biber
24.07.2010 um 17:22 Uhr
Moin WiSch,

danke für die Erläuterung.

Ich kann das Problem zwar immer noch nicht richtig fassen bzw. eine Lösung anbieten, aber noch mal zwei Anregungen.
a) Thema "%windir% kann bei jedem Client ein anderes sein" - ja nee, keine Frage.
Aber dennoch kannst du es doch bei Anlegen des Links auflösen. [Mit Betonung auf "du kannst es". Denn ob Windows immer alle Umgebungsvariablen auflösen mag, die in Links oder vor allem in Registrywerten stehen... ich bin da Pessimist.] Aber das war ohnehin nur eine Fussnote.. hatte nichts mit der eigentlichen Frage zu tun.
b) was hältst du denn zur Problemeingrenzung von einer kleinen Laubsägearbeit? Mal die Werte des manuell erzeugten funktionierenden Links mit WScript.echo per VBS ausgeben und die automatisiert erzeugten drüberlegen?
Und mal posten, was da jetzt wo übersteht?

Grüße
Biber
Bitte warten ..
Mitglied: WiSch
24.07.2010 um 19:51 Uhr
Hallo Biber.

Das mit der "Laubsägearbeit" war eine gute Idee!!
Ich betätige mich innerhalb von Batch und VBS als 'Scriptkid', habe folgendes Script zum auslesen der Infos gefunden und genutzt (Zur Info, falls mal jemand in diesen Beitrag guckt und es gebrauchen kann):
01.
set WshShell = WScript.CreateObject("WScript.Shell") 
02.
 strDesktop = WshShell.SpecialFolders("Desktop") 
03.
 set Link1 = WshShell.CreateShortcut(strDesktop & "\NAME_DER_VERKNÜPFUNG.lnk") 
04.
 msgbox "Targetpath = " & Link1.TargetPath  & vbcrlf _ 
05.
  & "WorkingDirectory = " & Link1.WorkingDirectory & vbcrlf _ 
06.
  & "Arguments = " & Link1.Arguments & vbcrlf _ 
07.
  & "WindowStyle = " & Link1.WindowStyle & vbcrlf _ 
08.
  & "Hotkey = " & Link1.Hotkey & vbcrlf _ 
09.
  & "IconLocation = " & Link1.IconLocation & vbcrlf _ 
10.
  & "Description = " & Link1.Description & vbcrlf
Dabei ist dann herausgekommen, das als ZIEL die javaws.exe angegeben wird und als ARGUMENT "meine" URL zum Javaprogramm.... Ich hatte das die ganze Zeit andersrum probiert....

Kaum macht man es richtig, dann funktioniert es auch!
Hier das Script, wie ich es aktuell nun nutze:
01.
' Verknüpfung auf dem Desktop anlegen per VBScript 
02.
 
03.
' Variablenvorgabe 
04.
Dim objShell 
05.
Dim objShortCut 
06.
   
07.
Set objShell = CreateObject("WScript.Shell") 
08.
strWinDir = objShell.ExpandEnvironmentStrings("%WinDir%")  ' Windows Systemverzeichnis ermitteln 
09.
strLPfad=objShell.SpecialFolders("Desktop")  'Pfad zum Desktop 
10.
 
11.
strProgrammtitel = "NAME"  'Name der Verknüpfung 
12.
strProgramm = strWinDir & "\system32\javaws.exe"  'Programm das Verknüpft werden soll 
13.
strArguments = "http://<URL>/javaanwendung.jnlp"  'Startargumente für das zu startende Programm 
14.
strAusfuehrenIn = strWinDir  'Verzeichnis -Ausführen in- 
15.
strIcon = "C:\meinicon.ico"  'Eigenes Icon für die Verknüpfung    
16.
 
17.
' Rueckfrage ob Erstellung der Verknüpfung ok ist 
18.
ObjShell = msgbox("Wollen Sie eine Desktopverknüpfung anlegen?", +vbYesNo+vbExclamation ,"")  
19.
 
20.
' Ist ok? Dann erstellen 
21.
If ObjShell = vbYes then 
22.
Set objShell= WScript.CreateObject("Wscript.Shell") 
23.
Set objShortCut=objShell.CreateShortCut(strLPfad & "\" & strProgrammtitel & ".lnk") 
24.
objShortCut.Arguments= strArguments 
25.
objShortCut.TargetPath= strProgramm 
26.
objShortCut.WorkingDirectory= strAusfuehrenIn 
27.
objShortCut.Description= strProgrammtitel 
28.
' objShortcut.IconLocation = strProgram & ", -1500"      'Programmicon verwenden 
29.
objShortCut.IconLocation = strIcon & ", -1500"           'Eigenes Icon verwenden 
30.
objShortCut.Save 
31.
End if
Habt dank für die Hilfe.

Grüße,
WiSch
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ä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 ...

Windows 7
gelöst Batch-Skript oder VBS Skript zum Sichern von Office Vorlagen (2)

Frage von Ceejaay zum Thema Windows 7 ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (24)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...