FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Como hacer un teclado virtual en delphi?
Como se puede hacer un teclado virtual en delphi?
tipo el que ya trae windows C:\Windows\System32\OSK.EXE pero quiero uno personalizado con sólo unas pocas teclas, los completos no me sirven ya se que hacer un teclado es facil, la cosa es como detecto que el foco,handle de la última aplicacíon que tenía activa para enviarle la pulsación de una tecla¿? gracias |
#2
|
||||
|
||||
Utiliza la API GetForeGroundWindow para obtener el handle de la ventana.
A partir de ahí deberías poder mandarle mensajes...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
Gracias ando buscando sobre como usarlo,
pruebo por ejemplo con esto que ge visto por un foro pero no va, quiero por ejemplo enviar la pulsacion de la tecla A: SendMessage(GetForegroundWindow, WM_GETTEXT, 255,Integer(PChar(65))); y lo de GetActiveWindow también tendría que usarlo? |
#4
|
|||
|
|||
#5
|
|||
|
|||
Cita:
hwndWinamp := FindWindow(nil,pchar(rtrim(gWindowName))); //localizamos la ventana vamos que tengo que hacer con el gWindowName porque si pongo gWindowName='nombre de la ventana que quiero controlar' me da error, me dice que tiene que ser hwnd no un string |
#6
|
|||
|
|||
Puedes revisar este ejemplo que Peter Below publicó hace algún tiempo en:
http://cc.embarcadero.com/item/18590 Lo cierto es que necesitas el handle de la ventana a la que enviar las teclas y la mejor manera es utilizar foreground enviandola a la ventana activa pero para ello debes conseguir que la ventana en la que está el teclado nunca pueda obtener el foco y pasar a ser la activa. El ejemplo del link debería servirte de ayuda para poder conseguirlo, revisa la clase TNumericKeypad. |
#7
|
|||
|
|||
Cita:
|
#8
|
|||
|
|||
Con ese ejemplo lo he modificado para el modo que lo necesito,
el problema que no se por qué hay veces que funciona y otras veces tengo que hacer click en el icono de la barra de tareas para que funcione, hay algo mal, pero el codigo del ejemplo es tan complicado que no se que es lo que falla: a ver si alguno veis el fallo: https://dl.dropboxusercontent.com/u/18024062/Prueba.rar Además, seguro que hay un modo menos complicado de hacer esto pero no encuentro otro modo de que funcione. |
#9
|
|||
|
|||
Aunque seguramente no sea el mejor modo ya más o menos lo he conseguido que haga lo que quiero,
añadiendo al FormShow NumericKeypad.WindowState:=WSMinimized; NumericKeypad.WindowState:=WSNormal; |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Teclado virtual | toni.vi | OOP | 7 | 12-03-2009 21:16:41 |
Teclado virtual para TPV | Steal | API de Windows | 5 | 25-02-2009 00:45:06 |
Desarrolo de un teclado virtual como el de windows | ALMERA | API de Windows | 2 | 11-04-2008 11:44:24 |
Teclado Virtual | elcolo83 | Varios | 2 | 18-02-2008 12:25:51 |
Como hacer un teclado virtual | Andres_Franco | DelphiPACK | 2 | 07-01-2004 09:23:12 |
|