Toon posts:

[VB] commands naar Telnet sturen

Pagina: 1
Acties:

Verwijderd

Topicstarter
mede-tweakers,

Ik wil dus vanuit een VB programma telnet op te starten en te connecten met een host (standaard WinXP telnet client) (dit werkt prima)... vervolgens wil ik hem automatisch laten inloggen met een user en pass, maar dit wil dus niet werken. SendKeys doet niks and AppActivate ervoor geeft een error.

  • nxt
  • Registratie: November 2001
  • Laatst online: 26-08 13:51

nxt

Ik weet niet of het gebruik van de 'XP Telnet Client' verplicht/noodzakelijk is,
maar anders heb je hier misschien iets aan http://www.nsoftware.com/showdesc.asp?ctl=Telnet&prod=ipworks

Verwijderd

Op donderdag 21 maart 2002 20:12 schreef Donkey het volgende:
mede-tweakers,

SendKeys doet niks and AppActivate ervoor geeft een error.
Bij mij wordt er m.b.v. de onderstaande code wel de string "tekenreeks" in de Telnet-client geplaatst: (ik maak gebruik van Visual Basic 6)

StartProgram = Shell("C:\Windows\System32\telnet.exe")
SendKeys "tekenreeks"

edit:

Mogelijk moet de SendKeys-actie iets vertraagd worden...

Verwijderd

Topicstarter
Op donderdag 21 maart 2002 20:24 schreef landolt het volgende:

[..]

Bij mij wordt er m.b.v. de onderstaande code wel de string "tekenreeks" in de Telnet-client geplaatst: (ik maak gebruik van Visual Basic 6)

StartProgram = Shell("C:\Windows\System32\telnet.exe")
SendKeys "tekenreeks"
Ik gaat het eens even bekijken....

Verwijderd

Topicstarter
nope helaas hij doet niks... mijn code:
code:
1
2
3
4
Private Sub Command2_Click()
StartProgram = Shell("C:\Windows\System32\telnet.exe")
SendKeys "tekenreeks" 
End Sub

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09-09 20:58

Janoz

Moderator Devschuur®

!litemod

Huh? Werkt dat tegenwoordig zo? Worden er al externe applicaties gebruikt om gewoon een telnet verbinding op te zetten?

Voor het parsen van een internet pagina of het ophalen van mail kan ik me nog voorstellen dat er een externe applicatie wordt gebruikt, maar telnet is niks meer of minder dan een kale socket verbinding. Wat je er aan 1 kant in stuurt komt er aan de andere kant weer uit en omgekeert. Ik neem aan dat met VB gewoon met sockets gewerkt kan worden toch?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Op donderdag 21 maart 2002 20:27 schreef Donkey het volgende:
nope helaas hij doet niks... mijn code:
code:
1
2
3
4
Private Sub Command2_Click()
StartProgram = Shell("C:\Windows\System32\telnet.exe")
SendKeys "tekenreeks" 
End Sub
Probeer eens met bijv. een timer de SendKeys-actie te vertragen...

En Janoz heeft gelijk. Het 'echte' werk is natuurlijk een eigen op WinSock gebaseerde Telnet-app te maken (kijk eens op http://www.vbip.com/winsock/winsock_control.asp).

Verwijderd

op het moment dat je sendkeys afgaat draait je telnet app nog niet..
code:
1
2
3
4
5
6
7
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Command2_Click()
StartProgram = Shell("C:\Windows\System32\telnet.exe")
sleep 500
SendKeys "tekenreeks" 
End Sub

doet de truk maar 't is wel 'n beetje rare manier van werken aangezien de gebruiker het window weg kan klikken waarna je app in de soep loopt..(of eigenlijk erger allerlei keys gaat sturen naar andere apps die dan toevallig de focus hebben)

  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 25-07 18:17

Skinny

DIRECT!

Op donderdag 21 maart 2002 20:29 schreef Janoz het volgende:
Huh? Werkt dat tegenwoordig zo? Worden er al externe applicaties gebruikt om gewoon een telnet verbinding op te zetten?
LOL :)... lekker droog

1. Zie mijn sig. En zoeken maar
2. Ik doe al wat --> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon98/html/vbconusingwinsockcontrol.asp

SIZE does matter.
"You're go at throttle up!"


Verwijderd

Topicstarter
Op donderdag 21 maart 2002 20:29 schreef Janoz het volgende:
Huh? Werkt dat tegenwoordig zo? Worden er al externe applicaties gebruikt om gewoon een telnet verbinding op te zetten?

Voor het parsen van een internet pagina of het ophalen van mail kan ik me nog voorstellen dat er een externe applicatie wordt gebruikt, maar telnet is niks meer of minder dan een kale socket verbinding. Wat je er aan 1 kant in stuurt komt er aan de andere kant weer uit en omgekeert. Ik neem aan dat met VB gewoon met sockets gewerkt kan worden toch?
ja dat klinkt natuurlijk zeer aantrekkelijk en ik hou wel van een uitdaging, heb je misschien een pagina met info hierover?

Verwijderd

Op donderdag 21 maart 2002 20:29 schreef Janoz het volgende:
.... maar telnet is niks meer of minder dan een kale socket verbinding. Wat je er aan 1 kant in stuurt komt er aan de andere kant weer uit en omgekeert ...
Niet dus:

Er zij wel 8 RFC's om dat protocol uit te leggen:

http://www.freesoft.org/CIE/RFC/854/index.htm
http://www.freesoft.org/CIE/RFC/855/index.htm
http://www.freesoft.org/CIE/RFC/856/index.htm
http://www.freesoft.org/CIE/RFC/857/index.htm
http://www.freesoft.org/CIE/RFC/858/index.htm
http://www.freesoft.org/CIE/RFC/859/index.htm
http://www.freesoft.org/CIE/RFC/860/index.htm
http://www.freesoft.org/CIE/RFC/861/index.htm

Verwijderd

Topicstarter
Op donderdag 21 maart 2002 20:31 schreef Yarvieh het volgende:
op het moment dat je sendkeys afgaat draait je telnet app nog niet..
code:
1
2
3
4
5
6
7
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Command2_Click()
StartProgram = Shell("C:\Windows\System32\telnet.exe")
sleep 500
SendKeys "tekenreeks" 
End Sub

doet de truk maar 't is wel 'n beetje rare manier van werken aangezien de gebruiker het window weg kan klikken waarna je app in de soep loopt..(of eigenlijk erger allerlei keys gaat sturen naar andere apps die dan toevallig de focus hebben)
Doed die's cool :) ik zal kijken of ik wat checks in kan bouwen voor de status van mijn telnet. Hehe eerst eens kijken wat ik ook kan doen met het zelf schrijven ervan :)

Verwijderd

Op donderdag 21 maart 2002 20:33 schreef Donkey het volgende:

[..]

ja dat klinkt natuurlijk zeer aantrekkelijk en ik hou wel van een uitdaging, heb je misschien een pagina met info hierover?
De RFC's van Telnet: www.faqs.org/rfcs/rfc854.html en www.faqs.org/rfcs/rfc318.html. Deze links kan je het beste gebruiken als je al wat ervaring hebt met de WinSock-control in VB. Meer info daarover is te vinden op bijv. http://www.vbip.com/winsock/.

Verwijderd

Topicstarter
okay, nu nog een vraagje in vervolg hierop... bij de login laat ik de loginnaam invoeren vervolgens geef ik een enter mee... probleem is alleen dat als ik er een sendkeys achteraangooi met het wachtwoord dattie het wachtwoord intypt voor de password prompt er staat... dat wachten werkt in dit geval niet :(

Verwijderd

Op donderdag 21 maart 2002 20:55 schreef Donkey het volgende:
okay, nu nog een vraagje in vervolg hierop... bij de login laat ik de loginnaam invoeren vervolgens geef ik een enter mee... probleem is alleen dat als ik er een sendkeys achteraangooi met het wachtwoord dattie het wachtwoord intypt voor de password prompt er staat... dat wachten werkt in dit geval niet :(
De sleep-tijd wat verhogen. Het kan nl. even duren voordat de server antwoordt.

Maar: De meeste controle heb je toch met een eigen Telnet/Winsock-applicatie. Het is wel iets meer werk, maar dan heb je ook wat! :7

Verwijderd

Op donderdag 21 maart 2002 20:55 schreef Donkey het volgende:
okay, nu nog een vraagje in vervolg hierop... bij de login laat ik de loginnaam invoeren vervolgens geef ik een enter mee... probleem is alleen dat als ik er een sendkeys achteraangooi met het wachtwoord dattie het wachtwoord intypt voor de password prompt er staat... dat wachten werkt in dit geval niet :(
hint: sendkeys heeft 'n optionele wait parameter...

Verwijderd

Topicstarter
Op donderdag 21 maart 2002 21:07 schreef Yarvieh het volgende:

[..]

hint: sendkeys heeft 'n optionele wait parameter...
Hmm ik zal er eens naar kijken, het was me in eerste instantie niet duidelijk wat die deed... :)

Verwijderd

Topicstarter
Op donderdag 21 maart 2002 21:05 schreef landolt het volgende:

[..]

De sleep-tijd wat verhogen. Het kan nl. even duren voordat de server antwoordt.

Maar: De meeste controle heb je toch met een eigen Telnet/Winsock-applicatie. Het is wel iets meer werk, maar dan heb je ook wat! :7
Hehe da's alleen even een stappie te ver voor mij nu, ik begin steeds beter te programmeren in VB, maar ik heb eens gekeken naar die pagina's en het ziet er toch lastig uit :?
Maar ik ga het zeker in een wat later stadium proberen, het zou een leuke feature zijn. Om mijn probleem van nu op te lossen: Ik dacht iets van een soort van read statemen o.i.d waarbij gekeken wordt of de prompt er al staat?

SendKeys en Wait werkt helaas niet :(

Langere Sleep Time werkt ook niet, hij krijgt de prompt pas nadat de SendKeys allemaal ingevoerd zijn.
Pagina: 1