Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-01-2008
FrianxD FrianxD is offline
Miembro
 
Registrado: dic 2007
Posts: 65
Poder: 17
FrianxD Va por buen camino
Arrow 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 !
Responder Con Cita
  #2  
Antiguo 10-01-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
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.
Responder Con Cita
  #3  
Antiguo 10-01-2008
FrianxD FrianxD is offline
Miembro
 
Registrado: dic 2007
Posts: 65
Poder: 17
FrianxD Va por buen camino
Cita:
Empezado por enecumene Ver Mensaje
Hola, Para serte sincero amigo FrianxD he leido tu hilo tres veces y todavia no logro entenderte.

Saludos.
Jajjaaj, no hay drama, vuelvo a explicarte e intentare ser mas claro


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!
Responder Con Cita
  #4  
Antiguo 10-01-2008
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
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.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #5  
Antiguo 10-01-2008
FrianxD FrianxD is offline
Miembro
 
Registrado: dic 2007
Posts: 65
Poder: 17
FrianxD Va por buen camino
Cita:
Empezado por D&W Ver Mensaje
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.


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
Responder Con Cita
  #6  
Antiguo 10-01-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
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.
Responder Con Cita
  #7  
Antiguo 10-01-2008
FrianxD FrianxD is offline
Miembro
 
Registrado: dic 2007
Posts: 65
Poder: 17
FrianxD Va por buen camino
Cita:
Empezado por Lepe Ver Mensaje
Dicho de otra forma: fastidiar al usuario de turno.
Gente que habla por hablar, no es para fastidiar a nadie, para la proxima pregunta antes de hablar





Saludos,
Responder Con Cita
  #8  
Antiguo 10-01-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por FrianxD Ver Mensaje
Gente que habla por hablar, no es para fastidiar a nadie, para la proxima pregunta antes de hablar

Saludos,
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.
Responder Con Cita
  #9  
Antiguo 10-01-2008
FrianxD FrianxD is offline
Miembro
 
Registrado: dic 2007
Posts: 65
Poder: 17
FrianxD Va por buen camino
Cita:
Empezado por enecumene Ver Mensaje
Vamos Hombre, no seas asi, esa respuesta no es muy agradable.
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
Responder Con Cita
  #10  
Antiguo 11-01-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
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.
Responder Con Cita
  #11  
Antiguo 11-01-2008
FrianxD FrianxD is offline
Miembro
 
Registrado: dic 2007
Posts: 65
Poder: 17
FrianxD Va por buen camino
Cita:
Empezado por Lepe Ver Mensaje
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
Hola, Bueno si en parte tenes toda la razon podria ser usado para fastidiar, pero en realidad lo que queria hacer era una Aplicacion que este conformada de un Formulario, y algunos Edit, y que cada uno de ellos al lado tenga una tecla escrita "A", "B", "C", ".", y demas entonces el usuario escribe en el Edit, lo que quiere que "Escriba" cuando presione la tecla "A" y lo mismo con la "B", para ello facilitar el no tener que escribir muchisimas veces lo mismo si con 1 sola tecla se podria hacer, no se si me explico bien lo que no queria era molestar escribiendo todo por eso puse que necesitaba Un formulario, y q cuando se presiona la tecla "A" escriba "Hola"

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!!
Responder Con Cita
  #12  
Antiguo 11-01-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
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.
Responder Con Cita
  #13  
Antiguo 11-01-2008
FrianxD FrianxD is offline
Miembro
 
Registrado: dic 2007
Posts: 65
Poder: 17
FrianxD Va por buen camino
Cita:
Empezado por Lepe Ver Mensaje
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
Hola, Bueno voy a mirar la ayuda de delphi, muchisimas gracias por la ayuda!
Responder Con Cita
  #14  
Antiguo 11-01-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
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.
Responder Con Cita
  #15  
Antiguo 11-01-2008
FrianxD FrianxD is offline
Miembro
 
Registrado: dic 2007
Posts: 65
Poder: 17
FrianxD Va por buen camino
Cita:
Empezado por Lepe Ver Mensaje
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


Bueno muchisimas gracias Lepe, ahora voy a mirar el ejemplito tal vez me quede mas claro y me salga, gracias por la buena onda!
Responder Con Cita
  #16  
Antiguo 11-01-2008
FrianxD FrianxD is offline
Miembro
 
Registrado: dic 2007
Posts: 65
Poder: 17
FrianxD Va por buen camino
Cita:
Empezado por Lepe Ver Mensaje
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


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
Responder Con Cita
  #17  
Antiguo 11-01-2008
Avatar de grandmasterdari
grandmasterdari grandmasterdari is offline
Miembro
 
Registrado: ene 2008
Posts: 46
Poder: 0
grandmasterdari Va por buen camino
: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
Responder Con Cita
  #18  
Antiguo 11-01-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
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.
Responder Con Cita
  #19  
Antiguo 11-01-2008
FrianxD FrianxD is offline
Miembro
 
Registrado: dic 2007
Posts: 65
Poder: 17
FrianxD Va por buen camino
Cita:
Empezado por grandmasterdari Ver Mensaje
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

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
Responder Con Cita
  #20  
Antiguo 11-01-2008
FrianxD FrianxD is offline
Miembro
 
Registrado: dic 2007
Posts: 65
Poder: 17
FrianxD Va por buen camino
Cita:
Empezado por Lepe Ver Mensaje
FrianxD, pues me vas a perdonar, pero ni siquiera me fijé que estaba en el foro de C++ hasta ahora mismo .

Saludos
No te hagas drama Lepe muchas gracias de todas maneras!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 19:47:41.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi