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 16-05-2008
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 18
vejerf Va por buen camino
Question Enviar teclas de control a Google Earth

Buenas a todos.
Necesito enviar las teclas de control Ctrl+Alt+T y Ctrl+Alt+B a una aplicación, Google Earth en este caso. He estado buscando algún procedimiento para hacerlo y encontré este hilo en el foro, pero no logro comprenderlo ni adaptarlo a mis necesidades. Si alguien alguna vez ha usado un método similar a ver si me puede dar alguna pista más de como funciona.
Si alguien pudiera explicarme un poco como funciona le estaría agradecido.
Muchas gracias a todos!!!
Responder Con Cita
  #2  
Antiguo 16-05-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
El hilo que comentas no es el exacto, busca el envio de teclas utilizando keybd_event o por mensaje SendMessage ó PostMessage usando WM_KEYDOWN.

Saludos
Responder Con Cita
  #3  
Antiguo 19-05-2008
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 18
vejerf Va por buen camino
Unhappy No logro entenderlo

Hola cHackAll... le he echado un vistazo a SendMessage y al PostMessage, pero no logro entender como funciona. Sé que tengo que obtener el handler de la aplicación y lo obtengo, pero no sé como usar WM_KEYDOWN ni que valor usar para obtener la combinación de teclas Ctrl+Alt+otra. Si alguien pudiese explicarme algo más estaría agradecido. Mientras tanto sigo buscando ...
Gracias
Responder Con Cita
  #4  
Antiguo 19-05-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Utiliza la busqueda.

Saludos
Responder Con Cita
  #5  
Antiguo 19-05-2008
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 18
vejerf Va por buen camino
Unhappy

Debo ser bastante torpe cHackAll porque ni con los otros hilos me aclaro. Para empezar no sé como enviar una combinación de teclas porque no me funciona ni mandándolas una a una ni haciendo la suma de las tres. No me funciona ni así:
Código Delphi [-]
SendMessage(Aplicacion.GetMainHwnd,WM_LBUTTONDOWN,VK_CONTROL+VK_MENU+Byte('B'),0);
    SendMessage(Aplicacion.GetMainHwnd,WM_LBUTTONDOWN,VK_CONTROL+VK_MENU+Byte('B'),0);

Ni así:
Código Delphi [-]
SendMessage(Aplicacion.GetMainHwnd,WM_LBUTTONDOWN,VK_CONTROL,0);
    SendMessage(Aplicacion.GetMainHwnd,WM_LBUTTONDOWN,VK_MENU,0);
    SendMessage(Aplicacion.GetMainHwnd,WM_LBUTTONDOWN,Byte('B'),0);
    SendMessage(Aplicacion.GetMainHwnd,WM_LBUTTONUP,VK_CONTROL,0);
    SendMessage(Aplicacion.GetMainHwnd,WM_LBUTTONUP,VK_MENU,0);
    SendMessage(Aplicacion.GetMainHwnd,WM_LBUTTONUP,Byte('B'),0);

Con Aplicacion.GetMainHwnd obtengo el handler del Google Earth y estoy intentando enviar la pulsación simultánea de las teclas Ctrl+Alt+B, pero no me funciona y ya no encuentro nada más en los hilos del foro.

Si alguien sabe algo más sobre este tema... Gracias!!!
Responder Con Cita
  #6  
Antiguo 19-05-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Estas usando el mensaje WM_LBUTTONDOWN (para el boton izquierdo del ratón!), en lugar de WM_KEYDOWN (para una tecla), que es el correcto para éste caso.

Tambien te aconsejo revisar el mensaje WM_CHAR.

Saludos
Responder Con Cita
  #7  
Antiguo 19-05-2008
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 18
vejerf Va por buen camino
Sigue sin funcionar...

Explicaré un poco más lo que prentendo hacer. Mi aplicación se basa en el Google Earth y para obtener el mayor control posible sobre esa aplicación quiero ocultar sus opciones y darlas yo desde mi menú. Por ejemplo, GE te da la opción de una barra lateral con la combinación de teclas 'Ctrl+Alt+B' o a través del menú Ver. Mi idea es ocultar ese menú y yo dar en mi Menú Ver la opción de Barra lateral de GE, con lo que yo desencadenaría el mensaje 'Ctrl+Alt+B', pero no habría pulsación de las teclas con lo que yo no las capturaría por así decirlo. Se puede conseguir con el SendMessage lo que yo prentendo???
Gracias otra vez
Responder Con Cita
  #8  
Antiguo 19-05-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Obtienes el handle de la ventana en cuestion con FindWindow y le envias la siguiente secuencia de mensajes;

Código Delphi [-]
 SendMessage(hWnd, WM_KEYDOWN, VK_CONTROL, 0);
 SendMessage(hWnd, WM_KEYDOWN, VK_MENU, 0);
 SendMessage(hWnd, WM_CHAR, Byte('B'), 0);
 SendMessage(hWnd, WM_KEYUP, VK_MENU, 0);
 SendMessage(hWnd, WM_KEYUP, VK_CONTROL, 0);

Saludos
Responder Con Cita
  #9  
Antiguo 20-05-2008
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 18
vejerf Va por buen camino
Unhappy Sigo teniendo problemas

Pues eso... que sigue sin funcionarme. He usado lo q me dices cHackAll y no me ha funcionado
Código Delphi [-]
    SendMessage(Aplicacion.GetMainHwnd, WM_KEYDOWN, VK_CONTROL, 0);
    SendMessage(Aplicacion.GetMainHwnd, WM_KEYDOWN, VK_MENU, 0);
    SendMessage(Aplicacion.GetMainHwnd, WM_CHAR, Byte('B'), 0);
    SendMessage(Aplicacion.GetMainHwnd, WM_KEYUP, VK_MENU, 0);
    SendMessage(Aplicacion.GetMainHwnd, WM_KEYUP, VK_CONTROL, 0);

Sin embargo antes había usado un mensaje para cerrar la aplicación y sí que funciona:
Código Delphi [-]
    SendMessage(Aplicacion.GetMainHwnd,WM_CLOSE,0,0);

Alguna idea de por qué puede pasar esto???

Muchas gracias de nuevo...
Responder Con Cita
  #10  
Antiguo 21-05-2008
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 18
vejerf Va por buen camino
Unhappy Desesperado

Hola amigos,
Lo he intentado de todas las formas posibles, pero no he conseguido poder manejar el Google Earth a mi antojo. No sé si el problema está en la forma de enviar el conjunto de teclas 'Ctrl+Alt+B' porque enviando el mensaje para cerrar la ventana si que funciona. La cosa es que ya estoy algo desesperadillo porque mi jefe espera que eso esté marchando ya.

Si alguien tuviese alguna idea no sabe cuanto le estaría agradecido.

Muchas gracias por su ayuda y su paciencia...
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
Microsoft Virtual Earth VS Google Earth ?? ZayDun La Taberna 3 11-05-2007 12:34:05
Uso de Google Earth COM API vejerf Varios 1 17-04-2007 23:07:25
Google Earth y la cuarta dimensión dec La Taberna 2 14-11-2006 12:09:12
Integración Google earth Luci Internet 5 21-11-2005 15:14:35


La franja horaria es GMT +2. Ahora son las 07:45:28.


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