17735
Goto Top

(VB 6) rasdial.exe Ausgabe abfangen

Hallo,
ich möchte mit VB 6 eine Clientanwendung schreiben, mit deren Hilfe man sich per VPN zu einem Netzwerk verbinden kann. Dazu verwende ich die rasdial.exe, die ich per shell-Befehl aus Visual Basic aus aufrufe.

Soweit klappt die Herstellung der Verbindung auch, wenn richtige Zugangsdaten eingegeben wurden.

Mein Programm soll auf Verbindungsfehler reagieren können und bei erfolgreicher Herstellung der Verbindung die Möglichkeit der Trennung anbieten bzw. anzeigen, wie lange die VPN-Verbindung bereits besteht. Wie kann ich die Ausgabe der EXE-Datei abfangen, um herauszufinden, ob die Verbindungsherstellung geklappt hat? Ich habe bereits so versucht:

Dim VPNMessage as String

VPNMessage = Shell "rasdial.exe VPN " & username & " " & password & " /DOMAIN:DOMAIN /PHONEBOOK:C:\vpnconnect.inf", vbHide  

Leider gibt das Ausgeben der Variable VPNMessage dann nur die Task-ID zurück, mit denen ich nichts anfangen kann. Ich möchte wie gesagt das, was die EXE-Datei ausgibt abfangen, um überprüfen zu können, ob die Verbindung hergestellt wurde.

Gruß,
Ahnenforscher

Content-Key: 63602

Url: https://administrator.de/contentid/63602

Ausgedruckt am: 28.03.2024 um 14:03 Uhr

Mitglied: bastla
bastla 11.07.2007 um 20:10:38 Uhr
Goto Top
Hallo Ahnenforscher!

Sollte eigentlich auch in VB6 so gehen:
strRun = "rasdial.exe VPN " & username & " " & password & " /DOMAIN:DOMAIN /PHONEBOOK:C:\vpnconnect.inf"  
Set objShell = CreateObject("WScript.Shell")  
Set objWshScriptExec = objShell.Exec(strRun)
Set objstdOut = objWshScriptExec.StdOut

'Zeilenweises Einlesen ...  
Do While Not objstdOut.AtEndOfStream
    MsgBox objstdOut.ReadLine
Loop

'... oder am Stück mit Zerlegung in ein Array  
'strOutput = objstdOut.ReadAll  
'aLines = Split(strOutput, vbCrLF)  
'...  
Ist zwar eleganter, als die Ausgabe des "rasdial"-Befehles in eine temporäre Textdatei umzuleiten, allerdings wird kurzzeitig das CMD-Fenster angezeigt ...

Grüße
bastla
Mitglied: 17735
17735 12.07.2007 um 09:06:28 Uhr
Goto Top
Hallo bastla,

ja so habe ich das jetzt auch gelöst - Nachteil ist wie gesagt nur die CMD-Box, deshalb mein erster Versuch mit Shell() - da kann ich per WindowsStyle vbHide angeben, um das Fenster zu verstecken.

Naja macht nichts.

Danke nochmal & Gruß,
Ahnenforscher