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, 5323 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 ...

Windows Server
gelöst SQLExpress Probleme bei Backup (4)

Frage von Alternativende zum Thema Windows Server ...

Windows Server
Netzwerkdrucker Probleme mit Windows Server 2012 R2 in RDP-Farm (6)

Frage von TiTux zum Thema Windows Server ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst ZIP-Archive nach Dateien durchsuchen und Pfade ausgeben (33)

Frage von evinben zum Thema Batch & Shell ...

Router & Routing
Routingproblem in Homerouter-Kaskade mit Raspi (19)

Frage von Oldschool zum Thema Router & Routing ...

Server
Freenas schlechte Schreib Performance bei NFS (16)

Frage von janosch12 zum Thema Server ...

Windows Server
Fehler Vertrauensstellung im AD (14)

Frage von thomas-99 zum Thema Windows Server ...