Hola a todos
Tengo un problema que hace dias me quita el sueño
Estoy programando en .NET con el Framework 2.0 y tengo un programa que lee del puerto de comunicaciones y escribe en el puerto de teclado, una cosa asi mas o menos:
Private Sub Port1_DataReceived(ByVal sender As System.Object, ByVal e As_ System.IO.Ports.SerialDataReceivedEventArgs) Handles port1.DataReceived
Try
bytes_a_llegir = port1.BytesToRead
port1.Read(buffer, 0, bytes_a_llegir)
For k = 0 To bytes_a_llegir - 1
paquet_rx = paquet_rx & Chr(buffer(k))
Next
llargada = Len(paquet_rx) 'len actual rebuda
If llargada > 1 Then
llargada_real = 34
If llargada = llargada_real Then
For xx = 1 To Len(paquet_rx)
rx(xx) = Asc(Mid(paquet_rx, xx, 1))
paquet_ascii_rx = paquet_ascii_rx & Chr(rx(xx))
Next
enviar_teclado(paquet_ascii_rx)
paquet_rx = ""
paquet_ascii_rx = ""
End If
End If
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Public Sub enviar_teclado(Byval paquet_enter As String)
Try
SendKeys.SendWait(paquet_enter + Chr(7) + Chr(13))
Catch ex As Exception
End Try
llargada = 0
End Sub
En principio es una aplicacion senzilla, lo he programado como un servicio de windows que se inicia automaticamente con una cuenta de "localsystem" y que interactua con el escritorio para no tener que abrir ninguna interficie grafica y que cuando lleguan datos por el puerto de comunicaciones salta el evento de recepcion del SerialData y lo envia con el Sendkeys al "textbox" activo en cada momento, el problema viene cuando cierro sesion de windows con el usuario por ejemplo administrador y quiero escribir con este proceso al "textbox" donde pondria el password del usuario de windows, ahí el programa no funciona, no escribe nada en ese "textbox", teniendo en cuenta que el servicio sigue en marxa, pero lo he estado depurando y me doy cuenta de que el comando sendkeys no funciona correctamente en el entorno de winlogon, es decir cuando estoy en el escritorio default (el de toda la vida) funciona sin problemas, pero cuando estoy en el otro "escritorio" o dicho de otra manera, cuando estoy en el lugar de poner el usuario i contrasenya, no va, simplemente no funciona.
He estado mirando alterntivas y con api's de VB tampoco funciona
Alguien sabe porque no puedo escribir con el comando sendkeys en el "textbox" de inicio de sesion de windows? Hay alguna alternativa al comando sendKeys, que no sean api's claro esta!
Saludos y perdon por el toston!
Att. Darnali