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, 5325 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 ..
Ähnliche Inhalte
Windows 7
gelöst VBScript - HTML Probleme mit Schriftgröße (5)

Frage von MedicalAd zum Thema Windows 7 ...

Microsoft Office
Outlook 2013 Kontaktname enthält japanische Zeichen

Frage von xbast1x zum Thema Microsoft Office ...

Windows Server
Yoursecurecloud.de Probleme mit Pfaden (6)

Frage von WPFORGE zum Thema Windows Server ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(10)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (26)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Brauche Hilfe: Mit (schnellem) WLAN Strecke überbrücken (23)

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

Basic
Programmierung von Windows Programmen (10)

Frage von Ghost108 zum Thema Basic ...