C/Visual C - duda con aplicacion externa

 
Vista:
sin imagen de perfil

duda con aplicacion externa

Publicado por anonymous (8 intervenciones) el 19/10/2006 11:44:38
Hola, en la aplicacion que estoy desarrollando con c++ builder ejecuto mediante un boton una aplicacion externa, abro un *.exe con el comando ShellExecute();


Cuando se ejecuta se abre en su ventana independiente a mi aplicacion pero cuando pulso algun boton de la aplicacion de c++ esta se pone como ventana principal y el *.exe se queda oculto detras como es logico. Lo que pretendo es si se puede hacer que la aplicacion externa a la mia de c++ este siempre por encima, indistintamente si estoy trabajando con una ventana o con otra. No se si se puede resolver mediante programacion o simplemente se realiza con alguna opcion desde windows.


Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:duda con aplicacion externa

Publicado por fernando.gomez (1603 intervenciones) el 20/10/2006 07:59:00
La forma fácil: contrólalo desde tu *.exe haciendo que dicha ventana tenga el atributo top most habilitado. La forma difícil: contrólalo desde tu aplicación empleando comunicación interproceso y enviándole un mensaje a la ventana del *.exe para que tenga el atributo top most habilitado.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:duda con aplicacion externa

Publicado por anonymous (8 intervenciones) el 21/10/2006 02:20:46
Hola, muchas gracias por contestar. Era una propiedad que no conocia la de Top most, pero he estado mirando informacion y solo he encontrado que esta propiedad se aplica a formularios creados desde C++ Builder, pero en mi trabajo yo realizo una llamada desde mi aplicacion al notepad mediante un boton con el siguiente codigo:

String aux;
ShellExecute(NULL, "open","d:\\Archivos comunes\\notepad.exe", aux.c_str(), NULL, SW_SHOWNORMAL);

Con esta instruccion se ejecuta el notepad y quiero que sea este notepad el que tenga la propiedad TopMost y no he encontrado como se puede hacer esto, o quiza yo no lo he visto.
Me gustaria por favor si esto es lo tu creias que queria hacer o por el contrario lo que me has explicado es para realizarlo con los mismos formularios de c++ builder. Ya te digo que es la 1ª vez que veo esta opcion y no tengo muy claro como aplicarla al notepad.exe.

Un saludo y gracias
Alberto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:duda con aplicacion externa

Publicado por anonymous (8 intervenciones) el 23/10/2006 11:33:37
Trabajo con C++ Builder. He descubierto unas funciones que resuelven mi problema, pero no soy capaz de hacerlas funcionar. Con esta funcion consigo dar el tamaño, la posicion y la propiedad TopMost a una aplicacion, pero la primera linea que corresponde al HWND (-----------) de dicha aplicacion no se que colocar.

BOOL SetWindowPos(
----------,
HWND_TOPMOST,
12,
12,
700,
500,
SWP_SHOWWINDOW
);

Para solucionar esto me han comentado que use la funcion:

HWND FindWindow(
-------,
------
);

Pero tampoco se como completarlo. En la pagina de msdn no soy capaz de entender estas funciones, asi que si alguien me puede ayudar estaria agradecido.

La aplicacion a la que quiero aplicar la opcion de TopMost es el notepad y una aplicacion llamada AMCAP.exe

Un saludo y gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar