elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Capturar teclas y mostrarlas en un Textbox o ListBox
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Capturar teclas y mostrarlas en un Textbox o ListBox  (Leído 2,631 veces)
Zitox

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Capturar teclas y mostrarlas en un Textbox o ListBox
« en: 25 Junio 2015, 22:07 pm »

Buenas mi duda es la siguiente, hace poco eh terminado un proyecto que lo que hace es averiguar la IP de la pc donde se ejecuto el .exe y mandarla por email a un correo que yo indique.

Ahora quiero cambiar eso y lo que quiero hacer es que, lea las pulsaciones del teclado, y las muestre en un textbox o listbox. Lo de mandarlo por email ya se como hacerlo, pero se me complico esa parte.

Muchas gracias!



En línea

El Benjo


Desconectado Desconectado

Mensajes: 392



Ver Perfil WWW
Re: Capturar teclas y mostrarlas en un Textbox o ListBox
« Respuesta #1 en: 26 Junio 2015, 07:21 am »

Con la API mediante la función GetAsyncKeyState() puedes hacerlo.

http://www.pinvoke.net/default.aspx/user32.getasynckeystate


En línea

www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.807



Ver Perfil
Re: Capturar teclas y mostrarlas en un Textbox o ListBox
« Respuesta #2 en: 26 Junio 2015, 10:39 am »

Ahora quiero cambiar eso y lo que quiero hacer es que, lea las pulsaciones del teclado, y las muestre en un textbox o listbox.

1. ¿Dentro, o fuera de la ventana de la aplicación?.

2. ¿Tecnología Windows Forms, o WPF?.

Doy por entendido que pretendes capturar las pulsaciones del teclado de manera global, ya que la app no parece ética... y... ¿donde está tú código?, aquí no se hacen tareas.

Necesitarás crear un Hook de bajo nivel del teclado, no es muy complejo, pero si tedioso, ya que necesitasrás P/Invokear bastante y si no te documentas bien sobre las funciones y el callback del teclado te puedes perder un poco.

Aparte de eso, si quieres que sea perfecto también necesitarías obtener y aplicar el layout del teclado actual (para interceptar correctamente teclas cómo la Ç o la Ñ) e implementar tu propia lógica con ello, e identificar los modificadores de tecla, que aparte de con la WinAPI, también los puedes identificar con las dos classes de WPF que menciono al final del todo de este post.

Te indico más o menos lo necesario para desarrollar un keylogger normalito:

Funciones:
SetWindowsHookEx + WH_KEYBOARD_LL Hook Type
CallNextHookEx
UnhookWindowsHookEx

Estructuras:
KBDLLHOOKSTRUCT

Callbacks/Delegados:
KeyboardProc

Mensajes de ventana:
WM_KEYDOWN
WM_KEYUP
WM_SYSKEYDOWN
WM_SYSKEYUP

Utilidades adicionales (que puedes usar en WinForms también):
System.Windows.Input.KeyInterop Class (para convertir un código de tecla virtual a tecla, y viceversa)
System.Windows.Input.KeyBoard Class (sustituye al P/Invoking de varias funciones como la mencionada en el comentario de arriba, GetAsyncKeyState, y tiene otros miembros muy útiles, la class Input en general)

Tienes faena :xD, en realidad te costaría mucho más aprenderlo, que poner en práctica lo aprendido, no es dificil y además con todos los ejemplos que puedes encontrar por Google, ánimo...

PD: Aparte hay una técnica mejor que la tradicional, RAWINPUT (que requieren gran cantidad de P/Invoking también), pero he preferido detallar la tecnica del hooking ya que te resultará más sencilla que esto:
About Raw Input

Citar
The raw input model is different from the original Windows input model for the keyboard and mouse. In the original input model, an application receives device-independent input in the form of messages that are sent or posted to its windows, such as WM_CHAR, WM_MOUSEMOVE, and WM_APPCOMMAND. In contrast, for raw input an application must register the devices it wants to get data from. Also, the application gets the raw input through the WM_INPUT message.

There are several advantages to the raw input model:

    An application does not have to detect or open the input device.
    An application gets the data directly from the device, and processes the data for its needs.
    An application can distinguish the source of the input even if it is from the same type of device. For example, two mouse devices.
    An application manages the data traffic by specifying data from a collection of devices or only specific device types.
    HID devices can be used as they become available in the marketplace, without waiting for new message types or an updated OS to have new commands in WM_APPCOMMAND.

Saludos!
« Última modificación: 28 Junio 2015, 19:10 pm por Eleкtro » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
listbox y textbox visual basic 6
Programación Visual Basic
elguast 2 7,924 Último mensaje 25 Marzo 2009, 15:11 pm
por elguast
Duda con listbox y textbox
Programación Visual Basic
polmp 9 7,117 Último mensaje 24 Abril 2010, 15:19 pm
por polmp
Pasar listbox a textbox al hacer click en un valor del listbox
.NET (C#, VB.NET, ASP)
BrokerJoker 3 23,509 Último mensaje 13 Mayo 2012, 17:13 pm
por BrokerJoker
ListBox con TextBox
.NET (C#, VB.NET, ASP)
NetJava 6 3,557 Último mensaje 17 Enero 2013, 21:57 pm
por NetJava
Ayuda con ListBox y TextBox
Programación C/C++
Beaustyle 2 2,996 Último mensaje 16 Junio 2013, 15:58 pm
por aguml
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines