Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-06-2006
Avatar de lookmydoom
lookmydoom lookmydoom is offline
Miembro
 
Registrado: abr 2006
Posts: 102
Poder: 19
lookmydoom Va por buen camino
Question Keypress en otra aplicacion?

Que tal a todos.
Bueno me parece que esto requiere de las APIs de windows, las cuales no domino, haber si alguien puede ayudarme.

Quiero que mi aplicacion simule un keypress pero en otra aplicacion, puede ser cualquier tecla "a,b,ª" lo que sea.
Responder Con Cita
  #2  
Antiguo 26-06-2006
Avatar de waltergomez
waltergomez waltergomez is offline
Miembro
 
Registrado: may 2006
Posts: 202
Poder: 18
waltergomez Va por buen camino
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var hwndotrapp  : THandle;
begin
  hwndotrapp := FindWindow('notepad',nil);
  if hwndotrapp > 0 then
  begin
    SetForegroundWindow(hwndotrapp); // Cambia el foco
    keybd_event(VkKeyScan('C'),0,0,0);
    keybd_event(VkKeyScan('L'),0,0,0);
    keybd_event(VkKeyScan('U'),0,0,0);
    keybd_event(VkKeyScan('B'),0,0,0);
    keybd_event(VkKeyScan('D'),0,0,0);
    keybd_event(VkKeyScan('E'),0,0,0);
    keybd_event(VkKeyScan('L'),0,0,0);
    keybd_event(VkKeyScan('P'),0,0,0);
    keybd_event(VkKeyScan('H'),0,0,0);
    keybd_event(VkKeyScan('I'),0,0,0);
    SetForegroundWindow(Handle);  // Cambia el foco
  end;
end;

Salu2,
__________________
Si la libertad significa algo, es el derecho de decirles a los demás lo que no quieren oír
Orson Welles.
Responder Con Cita
  #3  
Antiguo 27-06-2006
Avatar de lookmydoom
lookmydoom lookmydoom is offline
Miembro
 
Registrado: abr 2006
Posts: 102
Poder: 19
lookmydoom Va por buen camino
Pues un catedratico en la U me dio este codigo ahora y tambien funciona lo que no se es cual es la diferencia entre el postmessage y el keybd_event, por cierto ninguno de los 2 codigos funciona en juegos a pantalla completa, abra alguna explicacion? por que ambos funcionan en los demas casos
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var hw:integer;
begin
hw:=findwindow(nil,'calculadora');
if hw>0 then
  postmessage(hw,wm_keydown,97,0);
end;
Responder Con Cita
  #4  
Antiguo 27-06-2006
Avatar de vic_ia
vic_ia vic_ia is offline
Miembro
 
Registrado: ene 2004
Posts: 238
Poder: 21
vic_ia Va por buen camino
hola...

en cuanto a cual es la diferncia entre las dos formas de realizar el proceso que se mencionan arriba, la primera lo que hace es "simular el envio de Teclazos a la ventana activa", mientras que la segunda envia un mensaje (el "mensaje" que windows interpreta como la pulsación de una tecla) a una venta en particular.

El hecho de no funcionar en juegos a pantalla completa tal vez se deba a que estos juegos interaccionan directamente con el Hardware del equipo, sin pasar por el "procesamiento de mensajes de windows"

saludos...
Responder Con Cita
  #5  
Antiguo 29-06-2006
Avatar de lookmydoom
lookmydoom lookmydoom is offline
Miembro
 
Registrado: abr 2006
Posts: 102
Poder: 19
lookmydoom Va por buen camino
Gracias por la aclaracion y por lo de las aplicaciones en pantalla completa funcionara si se lo hace por assember o habra alguna otra forma?
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
Sobreponer mi aplicacion sobre otra JAI_ME Varios 1 04-05-2006 02:35:37
Maximizar otra Aplicación Caro API de Windows 2 05-12-2005 13:11:15
Evitar cambiar a otra aplicación Jan_polero API de Windows 1 24-01-2005 17:27:55
Hooks teclas de otra aplicacion OmarPerez API de Windows 2 15-10-2004 17:14:48
Ejecutar otra aplicación desde la mía Bird15 API de Windows 4 13-09-2003 03:55:03


La franja horaria es GMT +2. Ahora son las 12:06:58.


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