FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
Como Usar KeyPress
Hola, Bueno queria saber si alguno me podria ayudar con mi duda, lo que precisaria hacer es lo siguiente :
Lenguaje: C++ Builder Necesito Crear Un Formulario y que por medio de codigo, al presionar la tecla "A" que automaticamente Presione "Enter" escriba "Hola" y Presione "Enter" Ejemplo, Si Abro un Bloc de notas y cuando presiono le tecla "A" Presione "Enter" escriba "Hola" Y Presione "Enter" dentro del Bloc de notas.. Bueno espero haberme expresado bien, y que me hayan entendido Desde ya, Muchas Gracias ! |
#2
|
||||
|
||||
Hola, Para serte sincero amigo FrianxD he leido tu hilo tres veces y todavia no logro entenderte.
Saludos.
__________________
Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
#3
|
|||
|
|||
Cita:
Ejemplo: Vos abris un Bloc de notas, presionas la tecla "A" dentro de el y quiero que mi Aplicacion detecte que se ha presionado la tecla esa.. y Aparte de la "A" escriba Algo, Ejemplo "HOLA" Dentro del Bloc de notas Bueno, espero haberme expresado mejor, disculpa las molestias Desde ya, Muchas Gracias! |
#4
|
||||
|
||||
Es algo lo que tu quieres franxD, sin embargo, creo que va por crear un hook del teclado, y luego determinar que el foregroundwindow (ventana activa) sea el bloc de notas. Con esto, obligatoriamente tendrás que trabajar a nivel de la API de windows.
Obiamente, vas a tener complicaciones, que ejemplo, en español se llama "bloc de notas" y en inglés es "notepad". En este caso, esa ambiguedad podría superarse si el existe una clase especifica para el bloc de notas, lo cual desconozco. Saludos. |
#5
|
|||
|
|||
Cita:
Hola, bueno a ver te explico algo, yo di como ejemplo el bloc de notas pero lo que quiero es que lo haga en cualquier lado, si tengo abierto un bloc de notas, WordPad, Microsoftexcel, lo que sea en lo que esta en primer plano quiero que haga eso, no se si me explico muy bien |
#6
|
||||
|
||||
Dicho de otra forma: fastidiar al usuario de turno.
Pues me gustaría saber si tú has hecho un programa que mueva el ratón de forma aleatoria en pantalla, los típicos "annoying", para poder acordarme de .... en fin, lo dejo, no quiero ofender a nadie. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#7
|
|||
|
|||
Gente que habla por hablar, no es para fastidiar a nadie, para la proxima pregunta antes de hablar
Saludos, |
#8
|
||||
|
||||
Vamos Hombre, no seas asi, esa respuesta no es muy agradable.
__________________
Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
#9
|
|||
|
|||
si, pero dice cosas que no son = no le doy mucha importancia a la gente que no tiene ganas de ayudar, todo bien no quiero lios con nadie =) si ofendi a alguien pido disculpas
|
#10
|
||||
|
||||
Quizás no pensé en todas las posibilidades al dejar mi mensaje.
Fue lo primero que se me ocurrió, ya que el ejemplo daba pié a mi respuesta. Quizás quieras usar macros de teclado globales a todo windows, es posible. Si hubieses dicho CTRL + A no hubiera pensado en "fastidiar al usuario", pero al decir la tecla "A", fue lo primero que se me vino a la mente. Estos hilos suelen rozar la línea de lo que está permitido en los foros y lo que no; si no se explica lo que se quiere hacer, siempre cabe la duda. Por mi parte debo decir que tengo Hooks de teclados implementados (4 en total) y de hecho no los dejo pasar a la aplicación que se encuentre activa. Dicho así tiene toda la pinta de "querer fastidar al usuario", pero si el usuario soy yo, y el programa sirve para reiniciar/apagar (forzando o no) Windows, el sentido de todo lo expuesto cambia radicalmente ¿no crees?. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#11
|
|||
|
|||
Cita:
No se si esto se puede hacer pero si alguno sabe o tiene alguna idea necesitaria mas que nada si puede ser sin combinacion de teclas me refiero a Ctrl + A, preferiria que sea solo "A" Desde ya muchas gracias, espero no haber ofendido a nadie y si fue asi pido disculpas!! |
#12
|
||||
|
||||
Tirando de la api de windows, sería con RegisterHotKey y su opuesta UnRegisterHotKey, deberás programar el método WndProc para que identifique dichas combinaciones (mira la ayuda de delphi).
Acabo de comprobar que esa API si permite una tecla sola (lo he probado con la tecla "A"), sin modificadores (CTRL , ALT, SHIFT). Los componentes jedi de la JVCL, también tiene la opción de teclas rápidas globales, aunque ignoro si es obligatorio un modificador o no. En este caso tienes que implementar menos código, ya que es un componente que sirve para este propósito. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#13
|
|||
|
|||
Cita:
|
#14
|
||||
|
||||
No será copiar y pegar para que todo funcione, pero con un ejemplito quizás se entienda mejor.
En mi programa he notado que da igual si pulsas la tecla en mayúsculas o minúsculas, de ambas formas me detecta que es la misma tecla rápida de sistema. No te puedo asegurar que siempre sea así, ya que uso el componente Hotkey de la paleta Win32 y quizás sea el que tiene la culpa. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#15
|
|||
|
|||
Cita:
Bueno muchisimas gracias Lepe, ahora voy a mirar el ejemplito tal vez me quede mas claro y me salga, gracias por la buena onda! |
#16
|
|||
|
|||
Cita:
una pregunta, tu programa lo has hecho en C++ builder?? si es asi me ayudaria bastante ver un ejemplo , ya que es el lenguaje que estoy usando. Gracias de antemano |
#17
|
||||
|
||||
:s:s:s:s:s:s
pues por mas que miro sigo sin entender,
la mayoria de los componentes de la vcl tienen una pestañita donde dice "events", y dentro de events hay un campo que dice "onkeypress", bueno si haces doble click ahi, rapidamente se crea una funcion ke te pasa como parametro el valor de la tecla presionada EJ: void __fastcall TForm1::FormKeyPress(TObject *Sender, char &Key) { if(Key==27) Form1->Close(); } espero que sea eso lo ke necesitas |
#18
|
||||
|
||||
FrianxD, pues me vas a perdonar, pero ni siquiera me fijé que estaba en el foro de C++ hasta ahora mismo . Mi lenguaje es Delphi, no puedo ayudarte en C .
Eso si, las funciones que he dicho son de la API de windows, por tanto las tienes definidas en C++ y descritas en la ayuda de Builder. grandmasterdari, se trata de capturar una tecla aunque estés en Microsoft Word escribiendo. Como estás fuera de tu aplicación, no puedes usar los eventos que comentas. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#19
|
|||
|
|||
Cita:
Hola, si es eso lo que necesito, pero lo que necesitaria seria cambiar el Form1->Close(); por algo como esto void __fastcall TForm1::FormKeyPress(TObject *Sender, char &Key) { if(Key==27) "Escribir "Feliz Cumpleaños" "; } El "Feliz Cumpleaños" quiero que lo escriba en cualquier lado, o sea si esta en primer plano un bloc de notas, que lo escriba ahi, si es un WordPad, o lo que sea que este en primer plano, ejemplo si tengo esta pagina abierta y presiono la key 27 quiero q aqui escriba "Feliz Cumpleaños" me explico grandmasterdari ?? Todo esto mientras la aplicacion esta fuera de foco o sea minimizada |
#20
|
|||
|
|||
No te hagas drama Lepe muchas gracias de todas maneras!
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
evento keypress | ronson | Varios | 40 | 04-01-2011 04:18:23 |
Keypress en otra aplicacion? | lookmydoom | API de Windows | 4 | 29-06-2006 04:30:05 |
Llamar a evento Keypress | edgusano | .NET | 1 | 30-11-2005 22:02:29 |
ayuda con keypress PLIS!!! | korex | Varios | 5 | 10-07-2005 22:13:41 |
codigo para keypress | weke | Varios | 6 | 11-06-2004 20:24:07 |
|