Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Interceptar En Una Aplicación Sin Componentes Graficos Cuando El Usuario P...
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Interceptar En Una Aplicación Sin Componentes Graficos Cuando El Usuario Presiona La Tecla "Q" En Su Teclado 
 
Hola amigos,
un breve y simple código para interceptar en aplicaciónes sin interfaz gráfica cuando el usuario presiona la tecla "Q" en su teclado:
Private pr As Process  
Private lett As New String[]  
  
  
Public Sub Main()  
  
Dim s As String  
Dim ss As New String[]  
Dim j As Short    
  
  s = File.Load("/proc/bus/input/devices")  
  s = Replace$(s, "\n", " ")  
  ss = Split(s, " ", "", True)

  For j = 0 To ss.Max
' Localizamos la línea que contiene el texto "Handlers=sysrq", y luego recogemos la última palabra de la propia línea.
'  Esta palabra será el nombre del file-device del teclado:
    If ss[j] = "Handlers=sysrq" Then s = ss[j + 2]  
  Next  
  
' Para leer el file-device detectado, tenemos que tener los permisos necesarios. Entonces se modifican.
' La palabra "mi_password" de la siguiente línea es la contraseña del usuario:
  Shell "echo mi_password | sudo -S chmod 4777 /dev/input" &/ s Wait

' En fin el file-device es manejado por "Process":
  pr = Exec ["cat", "/dev/input" &/ s] For Read As "processus"  
  
End  
  
  
Public Sub processus_Read()   ' Cada vez que se pulsa una tecla en el teclado...

 Dim b As Byte  
 Dim s As String

'...lee los datos del file-device del teclado:
  Read #pr, b  
  
  lett.Add(CStr(b))  
  
  If lett.Count = 144 Then  
      
    If lett[20] = "16" Then Print "Interceptado tecla "; Quote(" Q "); " del teclado !"  
  
    lett.Clear  
  
  Endif  
  
End

 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Interceptar En Una Aplicación Sin Componentes Graficos Cuando El Usuario Presiona La Tecla "Q" En Su Teclado 
 
acabo de hacer unas pruebas   y no solo sirve para detectar una tecla

con algunos ajustes se puede detectar el movimento
del mouse
y con mas ajustes se pueden hacer algunas cosas malignas
 



 
última edición por codificador el Sabado, 12 Abril 2014, 02:54; editado 1 vez 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Interceptar En Una Aplicación Sin Componentes Graficos Cuando El Usuario Presiona La Tecla "Q" En Su Teclado 
 
Gracias vuott.

Llevaba tiempo queriendo hacer esto desde una aplicación sin interfaz.
Deberíamos aprender mas sobre el uso de los procesos.

Esto es un ejemplo que quería hacer funcnionar, naturalmente con input no funciona.
No es como la antigua sentencia de basic INKEY$


Private temporizador As Timer
Private cuenta_tiempo As Integer
Private ha_escrito_algo As String

Public Sub Main()
  
  temporizador = New Timer As "Reloj"
  temporizador.Delay = 1000
  temporizador.Start
  
  Print "Escriba algo"
  Input ha_escrito_algo
  
End

Public Sub Reloj_Timer()
  
  cuenta_tiempo += 1
  If cuenta_tiempo >= 10 And Not ha_escrito_algo Then
    Print "Limite de tiempo excedido"
    temporizador.Stop
  Else If cuenta_tiempo < 10 And ha_escrito_algo Then
    Print "Ha necesitado " & cuenta_tiempo & " segundos. Para escribir: " & ha_escrito_algo    
    temporizador.Stop
  Endif
  
End
 


Pero claro, que tenga que ingresar la contraseña del administrador es un poco engorroso.  
Tengo que estudiar mejor tu ejemplo.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Sabado, 12 Abril 2014, 12:04; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Interceptar En Una Aplicación Sin Componentes Graficos Cuando El Usuario Presiona La Tecla "Q" En Su Teclado 
 
Shell escribió: [Ver mensaje]

Pero claro, que tenga que ingresar la contraseña del administrador es un poco engorroso.  
Tengo que estudiar mejor tu ejemplo.

Saludos

la contraseña es por que por seguridad  solo root puede leer ese archivo

de echo todos los archivos en ese directorio son de root
execpto uno de mouse
 



 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Interceptar En Una Aplicación Sin Componentes Graficos Cuando El Usuario Presiona La Tecla "Q" En Su Teclado 
 
codificador escribió: [Ver mensaje]
Shell escribió: [Ver mensaje]

... ingresar la contraseña del administrador es un poco engorroso.

la contraseña es por que por seguridad  solo root puede leer ese archivo

Sì, es como dice codificador.


codificador escribió: [Ver mensaje]
...con algunos ajustes se puede detectar el movimento del mouse

Sì. Hace tiempo escribí esta pagina en el Wiki de gambas-it.org:
http://www.gambas-it.org/wiki/index...suo_file-device
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Interceptar En Una Aplicación Sin Componentes Graficos Cuando El Usuario Presiona La Tecla "Q" En Su Teclado 
 
Citar:
y con mas ajustes se pueden hacer algunas cosas malignas


Hace algunos años tuve que hacer un keylogger en VB para controlar los accesos a cierto ordenador sensible en el curro que tenía antes. Nunca me lo he planteado en gambas, pero este ejemplo me huele bastante a aquello... me lo guardo por si vuelve a surgir la necesidad.

Gracias Vuott
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Interceptar En Una Aplicación Sin Componentes Graficos Cuando El Usuario Presiona La Tecla "Q" En Su Teclado 
 
shordi escribió: [Ver mensaje]
Gracias Vuott

De nada, shordi.
Muchos saludos. woot
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Teclado Virtual Y Dudas Y Me Estoy Volvien... ljma Aplicaciones/Fragmentos de Código 19 Viernes, 23 Septiembre 2011, 23:45 Ver último mensaje
ljma
No hay nuevos mensajes Un Detalle Con El Insert Into Gambas Value... jousseph Bases de Datos 5 Domingo, 04 Noviembre 2012, 20:58 Ver último mensaje
Shell
No hay nuevos mensajes La Tecla "enter" No Rula En Key.... guadafan General 2 Domingo, 17 Agosto 2014, 22:14 Ver último mensaje
guadafan
No hay nuevos mensajes Shortcut Solo De La Tecla "ALT" ... bencho General 5 Lunes, 28 Agosto 2017, 08:07 Ver último mensaje
bencho
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron