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

VBScript - Probleme mit bestimmten Zeichen

Frage Entwicklung VB for Applications

Mitglied: Dani

Dani (Level 5) - Jetzt verbinden

29.10.2009 um 18:12 Uhr, 5308 Aufrufe, 6 Kommentare

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:
01.
Dim WshShell, oShellLink, WSHNetwork, Last2Letters, LenString 
02.
 
03.
set WSHNetwork = CreateObject("WScript.Network") 
04.
set WshShell = WScript.CreateObject("WScript.Shell") 
05.
set oShellLink = WshShell.CreateShortcut("C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\link.lnk") 
06.
 
07.
LenString = Len(WSHNetwork.ComputerName) 
08.
Last2Letters =  Right(WSHNetwork.ComputerName, LenString - 8) 
09.
msgbox(Last2Letters) 
10.
 
11.
 
12.
oShellLink.TargetPath = "\\server\freigabe$\programm.exe /" & HexToDec(Last2Letters) - 50 
13.
oShellLink.WindowStyle = 1 
14.
oShellLink.Hotkey = "" 
15.
oShellLink.IconLocation = "\\server\freigabe$\programm.exe, 0" 
16.
oShellLink.Description = "Zugang zum Server" 
17.
oShellLink.WorkingDirectory = "server\freigabe$" 
18.
oShellLink.Save 
19.
 
20.
 
21.
Function HexToDec(strHex) 
22.
  dim lngResult 
23.
  dim intIndex 
24.
  dim strDigit 
25.
  dim intDigit 
26.
  dim intValue 
27.
 
28.
  lngResult = 0 
29.
  for intIndex = len(strHex) to 1 step -1 
30.
    strDigit = mid(strHex, intIndex, 1) 
31.
    intDigit = instr("0123456789ABCDEF", ucase(strDigit))-1 
32.
    if intDigit >= 0 then 
33.
      intValue = intDigit * (16 ^ (len(strHex)-intIndex)) 
34.
      lngResult = lngResult + intValue 
35.
    else 
36.
      lngResult = 0 
37.
      intIndex = 0 ' stop the loop 
38.
    end if 
39.
  next 
40.
 
41.
  HexToDec = lngResult 
42.
End Function
Wenn ich in die Eigenschaften der erzeugten Verknüpfung sehe, steht dort folgender Pfad:
01.
"\\server\freigabe$\programm.exe \101"
Das ist natürlich Mist - da Windows den Pfad nicht findet. So sollte er aussehen:
01.
"\\server\freigabe$\programm.exe" /101
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
Mitglied: bastla
29.10.2009 um 18:34 Uhr
Hallo Dani!

Da ja "/101" nicht Bestandteil des Pfades sein soll, versuch es mit
01.
oShellLink.TargetPath = "\\server\freigabe$\programm.exe" 
02.
oShellLink.Arguments = "/" & HexToDec(Last2Letters) - 50
Grüße
bastla

P.S.: Eigentlich fühle ich mich ja als "lieber Programmierer" nicht angesprochen - ich bin lieber "Scripter" ...
Bitte warten ..
Mitglied: Biber
29.10.2009 um 19:44 Uhr
<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...
</OT>
Bitte warten ..
Mitglied: bastla
29.10.2009 um 19:46 Uhr
@Biber
[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
Bitte warten ..
Mitglied: Biber
29.10.2009 um 19:51 Uhr
@bastla
[OT]
Zitat von bastla:

Was "dick" angeht hängt's nur von Dani ab ...

Grüße
bastla

Ich seh da kein Problem - Dani hängt anscheinend nur ab ("ich versuche mich seit heute Mittag eine VBScript fertig zustellen,")

Grüße
Biber
[/OT]
Bitte warten ..
Mitglied: Dani
29.10.2009 um 21:07 Uhr
Moin bastla,
du bist mein Held des Tages...bei mir zu Hause funktioniert es wunderbar. Ich probiere es gleich morgenfrüh nochmal in der Firma.
Dieser * Zeile.... Ich melde mich morgen nochmal.

@Biber
Nebenher...hatte heute 2 Techniker im Haus. Der Eine meinte, er muss im Gebäude rauchen und der andere hat unsere USV verschrottet. Auf Kinder aufpassen ist einfacher! Unglaublich, ich hätte heute Morgen nicht aufstehen sollen.


Grüße,
Dani
Bitte warten ..
Mitglied: 76109
29.10.2009 um 21:43 Uhr
Hallo zusammen!

Wenn bekannt ist, ab welcher Stelle der HexText beginnt, dann sollte die Konvertierung auch so gehen:
01.
LenString = Len(WSHNetwork.ComputerName) 
02.
Last2Letters =  Right(WSHNetwork.ComputerName, LenString - 8) 
03.
If Last2Letters = "" Then Zahl = 0 Else Zahl = CLng("&H" & Last2Letters)
Gruß Dieter
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Crontab mit Shell Probleme (9)

Frage von mschaedler1982 zum Thema Batch & Shell ...

Windows 7
gelöst Sind euch verstärkte Probleme bei Windows 7 Updates aufgefallen? (4)

Frage von RadioHam zum Thema Windows 7 ...

Cloud-Dienste
gelöst OwnCloud 8 Probleme mit Vorschaubildern auf Mobilgeräten (1)

Frage von zeroblue2005 zum Thema Cloud-Dienste ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (27)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (20)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...