Para que el valor enviado mediante SendKeys haga efecto, es necesario que en el programa destino el control que tiene el foco sea el adecuado. En tu caso necesitas que al enviar la pulsación de "flecha arriba" el control enfocado en el programa destino sea LArriba, e igual para los demás casos.
Creo que el destinatario debe estar recibiendo las pulsaciones, pero seguramente el control que tiene el foco es otro y por eso no hace lo que esperas de él.
Gracias, pero ya lo habia solucionado...
No hay forma que utilizando SendKeys el getkeystate lo detecte... Ya lo recontra probe...
Igualmente encontre una api...
Public Declare Sub keybd_event Lib "User32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwflags As Long, ByVal dwExtraInfo As Long)
Public Const KEYEVENTF_EXTENDEDKEY = &H1
Public Const KEYEVENTF_KEYUP = &H2
Se utiliza asi:
Call keybd_event(X, 0, 0, 0) ' aprieta el boton
Sleep 10
Call keybd_event(X, 0, KEYEVENTF_KEYUP, 0) 'suelta el boton
(donde x es el numero hexadecimal del boton que se quiere apretar)..
Tambien hay que poner un sleep entre que se aprieta y se suelta, ya que si no se espera un pequeño intervalo, directamente no lo nota el getkeystate.