VBScript - Probleme mit bestimmten Zeichen
Hallo lieber Programmierer,
ich versuche mich seit heute Mittag eine VBScript fertig zustellen, dass eine Verknüpfung im Startmenü erzeugt.
An sich funktioniert das Erstellen ohne Probleme. Jedoch habe ich Probleme mit Anführungszeichen und dem einfach Slash.
Hier mel Code-Schnipsel:
Wenn ich in die Eigenschaften der erzeugten Verknüpfung sehe, steht dort folgender Pfad:
Das ist natürlich Mist - da Windows den Pfad nicht findet. So sollte er aussehen:
Es ist also ein Problem mit den Sonderzeichen - sag ich mal. Ich habe bereits mit Char(42) u.ä. versucht, das Problem zu umgehen - keine Chance.
Habt ihr mir vllt. noch einen Idee oder Tipp?
Grüße,
Dani
ich versuche mich seit heute Mittag eine VBScript fertig zustellen, dass eine Verknüpfung im Startmenü erzeugt.
An sich funktioniert das Erstellen ohne Probleme. Jedoch habe ich Probleme mit Anführungszeichen und dem einfach Slash.
Hier mel Code-Schnipsel:
Dim WshShell, oShellLink, WSHNetwork, Last2Letters, LenString
set WSHNetwork = CreateObject("WScript.Network")
set WshShell = WScript.CreateObject("WScript.Shell")
set oShellLink = WshShell.CreateShortcut("C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\link.lnk")
LenString = Len(WSHNetwork.ComputerName)
Last2Letters = Right(WSHNetwork.ComputerName, LenString - 8)
msgbox(Last2Letters)
oShellLink.TargetPath = "\\server\freigabe$\programm.exe /" & HexToDec(Last2Letters) - 50
oShellLink.WindowStyle = 1
oShellLink.Hotkey = ""
oShellLink.IconLocation = "\\server\freigabe$\programm.exe, 0"
oShellLink.Description = "Zugang zum Server"
oShellLink.WorkingDirectory = "server\freigabe$"
oShellLink.Save
Function HexToDec(strHex)
dim lngResult
dim intIndex
dim strDigit
dim intDigit
dim intValue
lngResult = 0
for intIndex = len(strHex) to 1 step -1
strDigit = mid(strHex, intIndex, 1)
intDigit = instr("0123456789ABCDEF", ucase(strDigit))-1
if intDigit >= 0 then
intValue = intDigit * (16 ^ (len(strHex)-intIndex))
lngResult = lngResult + intValue
else
lngResult = 0
intIndex = 0 ' stop the loop
end if
next
HexToDec = lngResult
End Function
"\\server\freigabe$\programm.exe \101"
"\\server\freigabe$\programm.exe" /101
Habt ihr mir vllt. noch einen Idee oder Tipp?
Grüße,
Dani
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 128252
Url: https://administrator.de/forum/vbscript-probleme-mit-bestimmten-zeichen-128252.html
Ausgedruckt am: 11.04.2025 um 23:04 Uhr
6 Kommentare
Neuester Kommentar
Hallo Dani!
Da ja "/101" nicht Bestandteil des Pfades sein soll, versuch es mit
Grüße
bastla
P.S.: Eigentlich fühle ich mich ja als "lieber Programmierer" nicht angesprochen - ich bin lieber "Scripter" ...
Da ja "/101" nicht Bestandteil des Pfades sein soll, versuch es mit
oShellLink.TargetPath = "\\server\freigabe$\programm.exe"
oShellLink.Arguments = "/" & HexToDec(Last2Letters) - 50
bastla
P.S.: Eigentlich fühle ich mich ja als "lieber Programmierer" nicht angesprochen - ich bin lieber "Scripter" ...
<OT>

</OT>
Zitat von @bastla:
P.S.: Eigentlich fühle ich mich ja als "lieber Programmierer" nicht angesprochen - ich bin lieber "Scripter" ...
Och, ihr könnt ja trotzdem noch dicke Freunde werden... P.S.: Eigentlich fühle ich mich ja als "lieber Programmierer" nicht angesprochen - ich bin lieber "Scripter" ...
</OT>
@Biber
[OT]

[/OT]
Grüße
bastla
[OT]
Och, ihr könnt ja trotzdem noch dicke Freunde werden... 
Was "dick" angeht hängt's nur von Dani ab ... [/OT]
Grüße
bastla

Hallo zusammen!
Wenn bekannt ist, ab welcher Stelle der HexText beginnt, dann sollte die Konvertierung auch so gehen:
Gruß Dieter
Wenn bekannt ist, ab welcher Stelle der HexText beginnt, dann sollte die Konvertierung auch so gehen:
LenString = Len(WSHNetwork.ComputerName)
Last2Letters = Right(WSHNetwork.ComputerName, LenString - 8)
If Last2Letters = "" Then Zahl = 0 Else Zahl = CLng("&H" & Last2Letters)
Gruß Dieter