FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Capturar eventos de una ventana externa
Hola a todos,estoy necesitando ayuda, basicamente lo que quiero hacer es lo siguiente: Existe una aplicacion externa,una ventana externa y necesito que mi ventana, o sea, la de mi aplicacion tome los eventos o se posicione junto a la ventana de la aplicación externa. Es decir, si maximizo la ventana de la aplicación externa también se maximize mi ventana, lo mismo al minimizar etc.
Algún aporte? muchas gracias! |
#2
|
||||
|
||||
#3
|
|||
|
|||
Muchas gracias, muy buen aporte, voy a investigar y meter mano por ahí...veremos que sale
|
#4
|
|||
|
|||
Mover mi ventana pegada a la ventana de otra aplicacion?
Salio perfecto,funciona trabajando con un hook, solo que en vez de usar SetWindowsHookEx utilicé la funcion SetCWPMSGHook() que instala un hook para los mensajes WH_CALLWNDPROC y/o WH_GETMESSAGE. Esta funcion se encuentra en la dll gratuita dscwpmsg.dll.
El código dentro de la funcion callback (esta función es llamada por el hook instalado desde la dll,dscwpmsg) sería algo así: function Callback(SenderHWnd:HWND; wMsg:LongInt; wParam:LongInt; lParam:LongInt): LongInt; . . . WinClassName := GetWindowClassName(SenderHWnd); WM_SYSCOMMAND: begin if (WParam = SC_MINIMIZE) then begin if (WinClassName = 'xxxxxx') then Main.ShowMinimizedWebBrowser(); end; if (WParam = SC_RESTORE) then begin if (WinClassName = 'xxxxxx') then Main.ShowNormalWebBrowser(); end; end; . . . Ahora bien, lo que voy a intentar hacer es que mi ventana se mueva si es q la ventana de la otra apliacion se mueve, es decir,si se arrastra la ventana de la aplicacion,mi ventana se mueva pegada a ella,junto con ella,no se si me explico... Si alguien tiene algún aporte al respecto se lo voy a agradecer,mientras veo que me va saliendo. Saludos! |
#5
|
||||
|
||||
La idea que te propuse del Hook era para que capturaras los Mensajes WM_MOVING, WM_MOVE y WM_SIZING para reenviarselos a tu ventana con las modificaciones pertinentes según como adoses tu ventana a la anfitriona.
Por su puesto capturando mas mensajes puedes hacer mas cosas con tu ventana. Saludos. |
#6
|
|||
|
|||
Si, tal cual, logre hacerlo, solo q tenia qveriguar cual funcion usar para lograr "movimiento"....basicamente,el código quedaría algo asi (a continuación del código escrito arriba):
WM_MOVING: Begin if (WinClassName = 'xxxxxxx') then begin GetWindowRect(SenderHWnd, rcClient); Main.MoveWebBrowser(rcClient.Top,rcClient.Right); end; Y en la funcion MoveWebBrowser utilizo MoveWindow con el handle correspondiente a mi venta y demás parametros... El unico temita que me quedaría por intentar resolver es tratar de eliminar el delay entre que muevo la ventana y la mia cambia de posición...no se si será posible, tal vez utilizando AnimateWindow? ? Muchas gracias escafandra, fue fundamental tu aporte! |
#7
|
|||
|
|||
Hola he leido este hilo y me ha parecido muy interesante, podias decirme donde poder descargar la dll dscwpmsg.dll? Gracias.
|
#8
|
|||
|
|||
Cita:
Saludos! |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Capturar Eventos de Windows | berna | API de Windows | 4 | 07-10-2008 19:40:52 |
Ejecutar aplicacion externa y mandarle eventos de teclado | iqui.Balam | API de Windows | 0 | 16-06-2008 03:35:09 |
capturar eventos de un telefono | fedeloko | API de Windows | 0 | 04-10-2006 01:35:48 |
Como saber cuando windows abre una ventana externa a nuestra apli? | Xema | API de Windows | 6 | 23-09-2004 15:16:18 |
Capturar eventos de componentes | vichovi | OOP | 3 | 13-06-2003 19:01:33 |
|