Integrar un programa existente en una nueva GUI

Me gustaría integrar un programa existente (por ejemplo, bloc de notas, explorador, etc.) en una nueva ventana que quiero crear. El propósito sería tener 2 programas diferentes en 1 ventana. Sabes si es algo posible? Si es así, ¿qué tipo de tecnología podría utilizar? (Puedo usar C++, C# en Windows 7/Visual) Gracias.

preguntado el 12 de junio de 12 a las 09:06

Hubo un similar pregunta. Una de las soluciones fue así. Espero que esto pueda ayudarte. -

Creo que ya puedes tener 2 o más programas diferentes ejecutándose en un mismo Windows... jaja, qué divertido soy... de todos modos echa un vistazo así e así -

@musefan +1 para el segundo enlace -

su primer enlace parece bueno porque puede manejar una ventana del explorador, mientras que el proyecto de su segundo enlace no puede. Intentaré entenderlo (¡tal vez difícil!) -

1 Respuestas

Si desea agregar un programa externo, le sugiero que eche un vistazo a SetParent, ShowWindow e SetWindowLong. La teoría es configurar su ventana (o un control dentro de su ventana) para que sea el padre de otra ventana/control.

Respondido el 12 de junio de 12 a las 09:06

Gracias. Intenté esto: codeproject.com/Artículos/9123/… Es genial, funciona bien con el bloc de notas, pero el problema es que no funciona con ieplorer o explorer... - maelkun

Estoy trabajando en Windows 7 e Internet Explorer y Explorer no se manejan en mi GUI, están abiertos como una ventana emergente, en una nueva ventana. - maelkun

Tal vez podría intentar iniciar los procesos con sus ventanas ocultas y usar EnumWindows para obtener las ventanas relacionadas, cuando se crean. - Escalofriante

Sé por qué no funciona para Explorer. En realidad, explorer.exe ya se inició, así que cuando lo vuelvo a iniciar, simplemente abre una nueva ventana que no puedo obtener el proceso para esta ventana en particular... Al usar EnumWindow, puedo obtenerlo, pero ¿cómo puedo identificarlo entre todas las ventanas abiertas?? - maelkun

sugerí EnumWindows para que pueda encontrar las ventanas propiedad de un determinado proceso. Pero en esta circunstancia, eso no funcionaría, ya que en realidad no se está realizando un nuevo proceso. lamentablemente no conozco un agradable solución a esto... pero podrías try inyectando una DLL en el proceso y desviándolo CreateWindow? O tal vez incluso podría encontrar todas las ventanas propiedad del proceso (existente) antes ejecutarlo nuevamente, y luego, después de ejecutarlo nuevamente, busque las ventanas nuevamente y tome la nueva ventana que se ha creado. Pero esta idea es defectuosa si el usuario abre el explorador por sí mismo. - Escalofriante

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.