Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-01-2011
darkcuevas darkcuevas is offline
Miembro
 
Registrado: ago 2010
Posts: 31
Poder: 0
darkcuevas Va por buen camino
Como Crear Programa Que Pulse Una Tecla Continuamente?

hola.
principal mente disculpen que el titulo no explique bn lo que quiero hacer es que me resulta algo difisil explicarlo

voy ha hacer un par de preguntas que creo q van por el mismo lado

1° estoy creando un programa que hace que se precione constante mente una o varias teclas por ejenplo: yo quiero que la letra "a" se precione continua mente sin nesesidad de pulsarla en el teclado...(la pregunta es que codigo devo usar "no tengo ningun tipo de idea de como va el codigo que se usa en este caso")

2° yo quiero que al pulsar por ejenplo: Ctrl+A se active un boton o se prenda un time en pocas palacres un acceso rapido por el teclado (como logro que esto pase?)


bueno espero sus respuestas salu2 y grax de ante-mano

nota: me conedto por la mañana xD Bye
Responder Con Cita
  #2  
Antiguo 30-01-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola darkcuevas.

Podrías utilizar un TTimer para simular la presión continua de una tecla y para tu segunda pregunta, aprovechar el evento OnKeyPress del form.

Ejemplo : ( en un TForm poné un TTimer y un TEdit o un TMemo para visualizar el resultado )
Código Delphi [-]
...
procedure TForm1.FormCreate(Sender: TObject);
begin
  KeyPreview:= True;
  Timer1.Enabled:= False;
  Timer1.Interval:= 250;  // 1/4 seg (o lo que gustes)
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  keybd_event(Ord('A'),0,0,0);  // simular tecla presionada
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
  Msg: TMsg;
begin
  if (ssCtrl in Shift) and (Key = Ord('A')) then  // Ctrl + A
  begin
    PeekMessage(Msg, 0, WM_CHAR, WM_CHAR, PM_REMOVE); //Quitar Beep
    Timer1.Enabled:= not Timer1.Enabled;  // Activar/Desactivar TTimer
  end;
end;
...

La repetición de pulsación de tecla se activa/desactiva con Ctrl+A.


Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 30-01-2011 a las 12:25:08.
Responder Con Cita
  #3  
Antiguo 30-01-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Y felizmente, darkcuevas, ha obtenido el código realizado muy inteligentemente por ecfisa, un código creado coherentemente en el que repite constantemente una tecla repetidamente hasta que el usuario decida convenientemente que ya no debe repetirse ininterrumpidamente.
Responder Con Cita
  #4  
Antiguo 30-01-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Y colorin, colorado......
Saludos
__________________
Siempre Novato
Responder Con Cita
  #5  
Antiguo 30-01-2011
darkcuevas darkcuevas is offline
Miembro
 
Registrado: ago 2010
Posts: 31
Poder: 0
darkcuevas Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola darkcuevas.

Podrías utilizar un TTimer para simular la presión continua de una tecla y para tu segunda pregunta, aprovechar el evento OnKeyPress del form.

Ejemplo : ( en un TForm poné un TTimer y un TEdit o un TMemo para visualizar el resultado )



La repetición de pulsación de tecla se activa/desactiva con Ctrl+A.


Un saludo.

hola quetal bueno ya prove el codigo que pulsa la tecla


pero no entiendo como calocar el de acceso rapido me podrias explicas un poco mejor como colocarlo?? porfavor

no entiendo bn lo del evento dime como lo pondrias tu paso por paso si no es mucha molestia

(soy algo nuevo en este asunto)


haaa y que conponente es este FormKeyDown???

Última edición por darkcuevas fecha: 30-01-2011 a las 15:09:32.
Responder Con Cita
  #6  
Antiguo 30-01-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
El form tiene el evento keydown, escribe el código en él.
Responder Con Cita
  #7  
Antiguo 30-01-2011
darkcuevas darkcuevas is offline
Miembro
 
Registrado: ago 2010
Posts: 31
Poder: 0
darkcuevas Va por buen camino
mira yo escrivo el codigo en el evento pero nada al conpilar y marcar ctrl+a no pasa nada
Responder Con Cita
  #8  
Antiguo 30-01-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bueno, en el ejemplo que ha puesto ecfisa es ctrl+A mayúscula.
Responder Con Cita
  #9  
Antiguo 30-01-2011
darkcuevas darkcuevas is offline
Miembro
 
Registrado: ago 2010
Posts: 31
Poder: 0
darkcuevas Va por buen camino
no nada
Responder Con Cita
  #10  
Antiguo 30-01-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por darkcuevas Ver Mensaje
no nada
¿No nada,? ¡qué!, te recomiendo que leas nuestra guía de estilo, es que no somos adivinos
Responder Con Cita
  #11  
Antiguo 31-01-2011
darkcuevas darkcuevas is offline
Miembro
 
Registrado: ago 2010
Posts: 31
Poder: 0
darkcuevas Va por buen camino
disculpa que no aya segido respondiendo ayer es que me fui a dormir devido que tenia mucha fiebre


bueno continuo

Código Delphi [-]
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
  Msg: TMsg;
begin
  if (ssCtrl in Shift) and (Key = Ord('A')) then  // Ctrl + A
  begin
    PeekMessage(Msg, 0, WM_CHAR, WM_CHAR, PM_REMOVE); //Quitar Beep
    Timer1.Enabled:= not Timer1.Enabled;  // Activar/Desactivar TTimer
  end;
end;

yo introdusco el codigo en el evento pero al intentar encender el timer con Ctrl+A
no pasa nada no se enciende ni nada tanbien hise lo que medijiste y pusela "a" en minuscula
pero no paso nada me podrias explicar el codigo?

Última edición por Casimiro Notevi fecha: 31-01-2011 a las 13:56:50. Razón: Poner etiquetas [delphi] el código [/delphi]
Responder Con Cita
  #12  
Antiguo 31-01-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola darkcuevas.

Si copias/pegas el código que te puse y los eventos correspondientes están asignados, te aseguro que funciona.
Para visualizar el funcionamiento, usá un Edit cuyo Tab Order sea el primero.

Te explico básicamente como funcióna el código.

Cuando se crea el form, se pone la propiedad KeyPreview a verdadero haciendo que el form capture los eventos de teclado
antes que el control activo. Se desactiva el TTimer y se ajusta el intervalo con que se disparará el evento OnTimer.

Al dispararse el evento OnTimer, mediante la función keybd_event se simula la presión de una tecla. ( A en el ejemplo).

Usé el evento OnKeyDown del form para verificar si la combinación Ctrl+A fué pulsada; si es así se activa o desactiva
el TTimer mediante la negación del estado anterior de la propiedad Enabled.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 31-01-2011 a las 18:37:46.
Responder Con Cita
  #13  
Antiguo 31-01-2011
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
El TDBNavigator tiene una cosa parecida, si se mantiene clickado algún botón se dispara continuamente la acción..
__________________
¿Microsoft? No, gracias..
Responder Con Cita
  #14  
Antiguo 31-01-2011
darkcuevas darkcuevas is offline
Miembro
 
Registrado: ago 2010
Posts: 31
Poder: 0
darkcuevas Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola darkcuevas.

Si copias/pegas el código que te puse y los eventos correspondientes están asignados, te aseguro que funciona.
Para visualizar el funcionamiento, usá un Edit cuyo Tab Order sea el primero.

Te explico básicamente como funcióna el código.

Cuando se crea el form, se pone la propiedad KeyPreview a verdadero haciendo que el form capture los eventos de teclado
antes que el control activo. Se desactiva el TTimer y se ajusta el intervalo con que se disparará el evento OnTimer.

Al dispararse el evento OnTimer, mediante la función keybd_event se simula la presión de una tecla. ( A en el ejemplo).

Usé el evento OnKeyDown del form para verificar si la combinación Ctrl+A fué pulsada; si es así se activa o desactiva
el TTimer mediante la negación del estado anterior de la propiedad Enabled.

Un saludo.
grax si me funciono lo que paso es que yo estaba cometiendo un error gracias (;


Cita:
Empezado por Delfino Ver Mensaje
El TDBNavigator tiene una cosa parecida, si se mantiene clickado algún botón se dispara continuamente la acción..
me puedes ablar algo mas de TDBNavigate porfavor

lo que pasa es que el codigo que me dio ecfisa yo lo quiero para que emule la cosntante precion de las teclas al curarme o algo asi en algun juego entonses cuando quiero que cure no cura pero si abro un blod de notas si marca las teclas corespondientes

entonses abra que aserle algun tipo de modificacion al codigo o asi o sino buscar otro codigo noc recomiendenme algo
Responder Con Cita
  #15  
Antiguo 31-01-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Ahora entiendo. Lo que querés es hacer es algo como los auto pot que se usan en los juegos On Line.
En base el procedimiento es muy similar, la diferencia es que la tecla presionada debe ser capturada por el juego y no por el tu form. Y por tanto la forma en que envíes el mensaje, dependerá del juego que se trate. Y no te olvides que la mayoría de los juegos detecta este cheat.

Como un comienzo revisá este link: Autoclicker .

Aunque por lo que ví, se aplica al click del mouse, creo que podés sacar unas cuantas ideas.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #16  
Antiguo 31-01-2011
darkcuevas darkcuevas is offline
Miembro
 
Registrado: ago 2010
Posts: 31
Poder: 0
darkcuevas Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Ahora entiendo. Lo que querés es hacer es algo como los auto pot que se usan en los juegos On Line.
En base el procedimiento es muy similar, la diferencia es que la tecla presionada debe ser capturada por el juego y no por el tu form. Y por tanto la forma en que envíes el mensaje, dependerá del juego que se trate. Y no te olvides que la mayoría de los juegos detecta este cheat.

Como un comienzo revisá este link: Autoclicker .

Aunque por lo que ví, se aplica al click del mouse, creo que podés sacar unas cuantas ideas.

Un saludo.
sii exacto eso es lo que quiero creo que el codigo que esta en el link ke dejaste esta exelente voy a estudiar un rato xD con eso es suficiente si tengo alguna duda pregunto grax...


ha una pregunta que es (then) (else) esos 2 que funcion tienen si no es mucha molestia
para que sirve esto tanbn

implementation

{$R *.dfm}

Última edición por darkcuevas fecha: 31-01-2011 a las 23:26:11.
Responder Con Cita
  #17  
Antiguo 01-02-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola darkcuevas.

La sintaxis del condicional if / then /else, es muy sencilla.
Te hago un ejempo en pseudocódigo y su contraparte en código Delphi que creo que es la mejor manera de ver su funcionamiento.

Cita:
si Variable > 0 entonces
Mostrar "mayor que cero"
sino
Mostrar "menor que cero"
Código Delphi [-]
    if Variable > 0 then
      ShowMessage('mayor que cero')
    else
      ShowMessage('menor que cero');

implementation: Es una palabra reservada de Delphi que indica que se inicia la sección donde se 'implementa' (se escribe el código) de lo declarado en la sección de interface de la unidad. El código que se ubica en la sección implementation, es sólo accesible por la propia unidad.

{$R *.dfm}: Le indica a Delphi que debe enlazar los componentes visuales (form, botones, imágenes, etc) declarados en la sección interface,
esto Delphi lo almacena en un archivo con extensión .dfm.


Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 01-02-2011 a las 01:01:46.
Responder Con Cita
  #18  
Antiguo 01-02-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Para ampliar un poco lo dicho por ecfisa:
Hay que tener en cuenta que antes del ELSE no hay que poner punto y coma.
Tambien hay que tomar en cuenta que si hay mas de un dato entre estos delphi solo leera el primero, para que lea todos se necesita iniciar y terminar el proceso, asi:
Código Delphi [-]
 if Variable > 0 then
      begin // comienza
      Variable := 2;  // primer dato
      ShowMessage('La variable es 2'); // segundo dato, con punto y coma
      end  // termina sin punto y coma
    else
    Begin 
      Variable := 1;
      ShowMessage('La variable es 1');
end; // final
Saludos
__________________
Siempre Novato
Responder Con Cita
  #19  
Antiguo 01-02-2011
darkcuevas darkcuevas is offline
Miembro
 
Registrado: ago 2010
Posts: 31
Poder: 0
darkcuevas Va por buen camino
bueno ya entiendo gracias por toda su ayuda
Responder Con Cita
  #20  
Antiguo 22-05-2012
Assassins9797 Assassins9797 is offline
Registrado
NULL
 
Registrado: may 2012
Posts: 6
Poder: 0
Assassins9797 Va por buen camino
Lo de activar y desactivar con Control+A no era a lo que me refería.Me refiero a que al clickear un Button el button esté presionado hacia abajo,y cuando clickees en alguna parte de la pantalla el button se ponga normal y de clicks donde habías clickando antes (el guardado de las Coordenadas).E encontrado un video donde sale el Autoclicker Pillin en un juego llamado Boombang

Youtube : como usar autoclick pillin (No puedo poner el link)

Hay teneis el Autoclicker.Me gustaría crearlo exactamente como ese,salvo los texboxt.Es decir,Un button,un trackbar y la funcion del Button como el Pillin.El problema es que no encuentro el código.Si alguien me lo da,estaría muy agradecido.
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
como crear un programa multi-nucleo kurono Varios 8 31-12-2008 04:15:15
Tecla presionada continuamente tonyluna36 Varios 3 04-06-2007 17:33:45
Como crear un programa para que me formatee la PC federico1 Varios 7 02-06-2007 02:26:23
Crear programa Cliente / Servidor Como?? Mc_Hacks Conexión con bases de datos 4 16-11-2006 19:40:05


La franja horaria es GMT +2. Ahora son las 19:12:36.


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