2016-08-18 4 views
0

Ich erstellte einen Hyperlink in einer PDF, dieser Hyperlink ist an VBS-Skript gebunden, bis dieser Schritt alles in Ordnung ist. Wenn ich das Skript manuell ausführe (Doppelklick), macht das Skript das, was ich will (offene Telnet-Verbindung). Das Problem ist, wenn ich das Skript über den Hyperlink ausführen, zeigt CMD die Nachricht "" Telnet "wird nicht als interner oder externer Befehl erkannt". Bitte, kann mir jemand sagen, warum passiert das ??VBS von Hyperlink öffnen

Dies ist das Skript:

Dim WshShell, regexp 
    set regular = New RegExp 

    direccion = inputbox("Ingresa ip del equipo:") 

    ' Set pattern. 
    regular.Pattern = "^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" 
    ' Set case insensitivity. 
    regular.IgnoreCase = True 
    ' Set global applicability. 
    regular.Global = True 

    if regular.test(direccion) = TRUE then 
     set WshShell=CreateObject("WScript.Shell") 
     WshShell.run "cmd.exe" 
     WScript.Sleep 1000 
     'Send commands to the window as needed - IP and commands need to be customized 
     'Step 1 - Telnet to remote IP' 
     WshShell.SendKeys "telnet " & direccion 
     WshShell.SendKeys ("{Enter}") 
     WScript.Sleep 1000 
    else 
    msgbox "Ingresa una ip válida" 
    end if 
+0

Etwas seltsam passiert, wenn ich das Skript manuell ausführen (Doppelklick), in der Task-Manager angezeigt "Windows-Befehlsprozessor", aber wenn ich das Skript über den Hyperlink (PDF-Datei) im Task-Manager ausführen, erscheint "Windows Befehlsprozessor (32 Bit) ", ich denke, das Problem hängt vielleicht damit zusammen, aber ich weiß nicht, wie ich es lösen soll. Irgendeine Idee?? – Frnndo

Antwort

1

wahrscheinlich Arbeitsverzeichnis nicht richtig eingestellt.

versuchen

WshShell.SendKeys "c:\windows\system32\telnet.exe " & direccion 

P. S: Sie es tun falsch. "sendkeys" ist irgendwie verständlich, wenn das Telnet-Terminal bereits läuft, aber es gibt keinen Grund, Schlüssel manuell an die Standard-Eingabeaufforderung zu senden.

+0

Ich habe versucht, Ihrem Vorschlag zu folgen, aber das Problem besteht. In Bezug auf "Sendkeys" bin ich neu damit, welches ist die richtige Form oder Methode, die ich verwenden sollte? – Frnndo

0

Telnet ist nicht in meinem Windows 10 und 8. Aber wie auch immer, wenn Sie „telnet“ Befehl haben könnte nicht Sie tun:

WshShell.run "cmd.exe /k telnet" 

, die funktionieren sollte und spart Platz.

+0

Danke, aber nicht funktionieren. Von Anfang an zeigt CMD bei allen Versuchen immer die folgende Nachricht an: '\\ 10.1.2.112 \ Networks and Services' CMD.EXE wurde mit dem obigen Pfad als aktuelles Verzeichnis gestartet. UNC-Pfade werden nicht unterstützt. Standardmäßig im Windows-Verzeichnis. 'Telnet' wird nicht als interner oder externer Befehl, ausführbares Programm oder Batch-Datei erkannt. – Frnndo