| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
ifrit Master


Registrado: 12 Jun 2007Mensajes: 509Ubicación: La Habana, Cuba
|
Publicado: Sab 31 Ene, 2009 1:07 am Asunto: Duda con Message |
|
|
Hola amigos
me pregunto si hay algun ShowMessage
Application->MessageBox..etc
que incluya poder poner una imagen en el (una imagen propia no del sistema?
gracias _________________ Todos somos ignorantes, lo que no todos ignoramos lo mismo... |
|
| Volver arriba |
|
 |
escafandra Master

Registrado: 29 Nov 2007Mensajes: 625Ubicación: Madrid - España
|
Publicado: Sab 31 Ene, 2009 1:45 am Asunto: |
|
|
Pues como API yo creo que no existe, pero nada te impide crearlo tu mismo...
Saludos. |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Sab 31 Ene, 2009 8:27 am Asunto: |
|
|
Aun que es un poco complicado puede hacerse usando este pequeño tutorial para establecer un Hook al MessageBox, pues como bien dice el autor los iconos son dibujados por Windows, asi que hay que interpretar el tipo de mensaje que se envia para poder implementar un tipo de MessageBox personalizado.
Enlace
Aunado a ello y usando un poco mas el API de Windows puedes buscar un poco sobre LoadImage y DrawIco que son funciones que complementan el dibujo sobre un Dialogo que pertenece a Windows.
Saludos. _________________
 |
|
| Volver arriba |
|
 |
ifrit Master


Registrado: 12 Jun 2007Mensajes: 509Ubicación: La Habana, Cuba
|
Publicado: Sab 31 Ene, 2009 10:26 am Asunto: |
|
|
gracias amigos por responder ya ando en ello , si tengo resultados los muestro _________________ Todos somos ignorantes, lo que no todos ignoramos lo mismo... |
|
| Volver arriba |
|
 |
escafandra Master

Registrado: 29 Nov 2007Mensajes: 625Ubicación: Madrid - España
|
Publicado: Sab 31 Ene, 2009 6:02 pm Asunto: |
|
|
Yo creo que lo que pretende ifrit es utilizar un nuevo tipo de MessageBox en sus aplicaciones y no cambiar el de otras. Si estoy en lo cierto es mejor crearse un frame de mensajes a medida.
El Hook a MessageBox sería apropiado si uno quiere cambiar el comportamiento de otra aplicación, lo que además requiere inyectar código en la misma.
El Hook a la API es muy potente pero tiene sus limitaciones y es engorroso. El principal inconveniente es que el código original de la API puede cambiar de entre versiones del S.O. y entre distintas actualizaciones. De esta forma un Hook puede funcionar en una máquina y no en otra. Esto obliga a estudiar y hacer un debug de la API sobre el PC que queremos Hookear o a un desensamblado automático, mediante un código que reconozca instrucciones asm, a fin de tener punteria con nuestro Hook y no partir opcodes, lo que sería desastroso.
En definitiva, si el objetivo es un MessageBox a medida para usar en nuestra aplicación, lo fácil, cómodo y estable de por vida es rediseñarnoslo.
Saludos. |
|
| Volver arriba |
|
 |
ifrit Master


Registrado: 12 Jun 2007Mensajes: 509Ubicación: La Habana, Cuba
|
Publicado: Sab 31 Ene, 2009 6:44 pm Asunto: |
|
|
escafandra yo no me habia podido explicar mejor , muy bien por ti , es justo lo que debia haber dicho en el m\primer mensaje, pero he analizado varias vias y aun no llegoa nada , si tienes alguna forma de mostratme tanto mejor
gracias _________________ Todos somos ignorantes, lo que no todos ignoramos lo mismo... |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Sab 31 Ene, 2009 7:41 pm Asunto: |
|
|
Indicando que la mejor manera de solucionar esto, es crear un form y usarlo en forma Modal personalizando el Form para que funcione como un Dialgo estilo MessageBox, es lo mas practico y fácil de realizar tal y como dice Escafandra
La opción que establezco es para contestar la pregunta del mensaje:
| ifrit escribió: | | ... me pregunto si hay algun ... (una imagen propia no del sistema? ... |
de que SI existe la manera de realizar estas operaciones alterando el comportamiento de S.O en este caso Windows, la forma que presenta el autor es válida desde Win9x hasta WinVista
(la idea es que se me clavó la espina y quise ver si era posible usando funciones Avanzadas del API )
Saludos. _________________
 |
|
| Volver arriba |
|
 |
ifrit Master


Registrado: 12 Jun 2007Mensajes: 509Ubicación: La Habana, Cuba
|
Publicado: Sab 31 Ene, 2009 8:35 pm Asunto: |
|
|
Definitivamente por la urgencia voy a tener que utilizar un form con imaganes y texto no veo otra por el momento
gracias _________________ Todos somos ignorantes, lo que no todos ignoramos lo mismo... |
|
| Volver arriba |
|
 |
escafandra Master

Registrado: 29 Nov 2007Mensajes: 625Ubicación: Madrid - España
|
Publicado: Dom 01 Feb, 2009 1:33 am Asunto: |
|
|
No desmerezco la opción de Cesar, que técnicamente me resulta muy interesante. Ademas utiliza el sistema de Hook de Windows SetWindowsHookEx. Este tipo de Hook es estable y compatible con cambios del S.O. porque esta diseñado por Microsoft. La única pega es la relentización del programa o de todo el PC, según el caso.
Cuando me refería las incompatibilidades de los Hooks a la API, hacía referencia a aquellos que cambian el código de la API original para saltar al código del Hook que mas tarde volverá a saltar a API original. Estos requieren cambios de opcodes, almenos 5 bytes, en código máquina, lo que da origen a las posibles incompatibilidades.
Coincido contigo, Cesar, que en ocasiones se clava la espina y es interesante buscar soluciones avanzadas. Tanto los Hook que proporciona de serie Windows como los Hooks a la API con inyección de código resultan estimulantes en cuanto que son desafíos técnicos poco habituales.
Saludos. |
|
| Volver arriba |
|
 |
|