Telnet-Verbindung

execute
Hallo liebe VB`ler,

ich möchte gerne ein Programm schreiben, dass sich per Telnet auf einen Server Verbindet und dort verschiedene, über Buttons vom Programm gesteuerte Commands ausführt.
Um mich mit dem Telnet-Server zu verbinden will ich die cmd.exe (C:/Windows/cmd.exe) nutzen. Alles was ich bis jetzt hinbekommen habe, war die Datei zu öffnen (Shell "PATH"). Diese sollte aber in erster Linie nicht sichtbar sein (versteckt im System-Tray, geht das ?!). Wenn die cmd.exe dann offen ist sollen die Commands ausgeführt werden.
z.B.:

"telnet serverip port"

Also die 2 Befehle "Shell "PATH" und "telnet serverip port" sollen nacheinander ausgeführt werden.

Also Zusammenfassung:

1. cmd.exe nicht sichtbar öffnen.
2. Commands in die cmd.exe "einfügen" ?


Ich bin für jede Unterstützung dankbar.
neonator
also von vb versteh ich nix ^^

aber ich würd die telnet.exe nehmen (system32 @winxp), die hilft dir wahrscheinlich eher, da die telnet.exe von der cmd.exe aus gestartet wird Augenzwinkern

gruss
execute
Geht auch, aber das Problem habe ich immer noch.
Sleepy
schonmal mit winsock beschäftigt?
daHooligan
probiers mal, indem du ne batch-datei schreibst, die dann von der eingabeaufforderung ausgeführt wird, wenn die einzelnen befehle net grad zu lang brauchen wird das fenster net angezeigt
ThiefMaster
Wenn man es nicht unsichtbar startet, wird es immer angezeigt.
daHooligan
Zitat:
Original von ThiefMaster
Wenn man es nicht unsichtbar startet, wird es immer angezeigt.


kommt aber drauf an, wie lange es dauert bis die befehle abgearbeitet sind und es sich wieder schließt
execute
Erstmal danke für den kleinen Tip (Winsock)!

Ich hab mir das mal genauer angesehen und habe mal folgendes geschrieben:

code:
1:
Private Sub Winsock1_Close()  Addline text1, "_____________________"  Addline text1, "[Verbindung getrennt]"  End Sub      Private Sub Winsock1_Connect()  Addline text1, "[Verbunden]"  Addline text1, "_____________________"  End Sub      Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)  Dim D As String  Winsock1.GetData D  D = Replace(D, Chr(10), vbCrLf)  Addline text1, "<server>: " + D  End Sub      Sub Addline(txt As TextBox, cLine As String)  txt.Text = txt.Text + cLine  If Right(cLine, 2) <> vbCrLf Then txt.Text = txt.Text + vbCrLf  txt.SelStart = Len(txt.Text)  End Sub    Private Sub Command1_Click()  Winsock1.Close  Winsock1.RemotePort = Val(txtPort.Text)  Winsock1.RemoteHost = Trim(txtAdresse.Text)  Winsock1.Connect  End Sub      Private Sub Command2_Click()  Winsock1.Close  End Sub      Private Sub Text2_KeyPress(KeyAscii As Integer)  If KeyAscii = 13 Then  KeyAscii = 0  Winsock1.SendData text2.Text + vbCrLf  Addline text1, "<ich>: " + text2.Text  text2.Text = ""  End If  End Sub    Private Sub Winsock1_Error(ByVal Number As Integer, Deion As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)  Addline text1, "Fehler: " + Deion  Winsock1.Close  End Sub


Wenn ich das Programm simulieren möchte und auf dem Command1_Click drücke, dann erscheint der belannte "Laufzeitfehler '424': Objekt erforderlich". Wenn ich dann debuggen lasse streicht er mir die Zeile

code:
1:
Winsock1.Close


an. Wenn ich die entferne (ist ja optional) dann streich er mir die nächte Zeile an.

Sehr seltsam
execute
Sorry, ich habe den Code im Post oben falsch gepastet, hier nochmal:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
Private Sub Winsock1_Close()
Addline text1, "_____________________"
Addline text1, "[Verbindung getrennt]"
End Sub


Private Sub Winsock1_Connect()
Addline text1, "[Verbunden]"
Addline text1, "_____________________"
End Sub


Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim D As String
Winsock1.GetData D
D = Replace(D, Chr(10), vbCrLf)
Addline text1, "<server>: " + D
End Sub


Sub Addline(txt As TextBox, cLine As String)
txt.Text = txt.Text + cLine
If Right(cLine, 2) <> vbCrLf Then txt.Text = txt.Text + vbCrLf
txt.SelStart = Len(txt.Text)
End Sub

Private Sub Command1_Click()
Winsock1.Close
Winsock1.RemotePort = Val(txtPort.Text)
Winsock1.RemoteHost = Trim(txtAdresse.Text)
Winsock1.Connect
End Sub


Private Sub Command2_Click()
Winsock1.Close
End Sub


Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = 0
Winsock1.SendData text2.Text + vbCrLf
Addline text1, "<ich>: " + text2.Text
text2.Text = ""
End If
End Sub

Private Sub Winsock1_Error(ByVal Number As Integer, Deion As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
Addline text1, "Fehler: " + Deion
Winsock1.Close
End Sub
bugtraq
... falsch gelsesen ...