Pregunta

Tengo una aplicación Java que se ejecutará en Windows 7 (usando Swing, aplicación n.° 1) que se ejecuta en pantalla completa (pero no en modo exclusivo).Tengo otra aplicación (Aplicación n.° 2) que muestra una GUI para configurar un dispositivo externo a través de un puerto serie que no tengo la fuente y no puedo cambiar en absoluto.

Quiero incrustar la aplicación n.° 2 dentro de la aplicación n.° 1 para que parezca parte de la aplicación Java principal (ocultando el archivo -> botón de salida y ocultando los botones minimizar, maximizar y cerrar).

Si este tipo de integración no es posible dentro de la aplicación Java, estaría bien abrir el proceso usando Java y simplemente monitorearlo para mantenerlo abierto.Sería necesario mantener la ventana configurada en "siempre visible" porque la aplicación n.° 1 está en pantalla completa y ocultar la mayor cantidad posible de la interfaz de usuario externa de MS Windows para engañar al usuario haciéndole pensar que no es una aplicación externa.¿Existe algún tipo de método, ya sea usando JNI u otra cosa, para administrar otra ventana de procesos (ubicación de la pantalla, barra de título, minimizar, maximizar, cerrar la visibilidad del botón) y el estado del proceso desde dentro de mi aplicación Java?

Estaré encantado de proporcionar más información si es necesario.

¿Fue útil?

Solución

El siguiente esquema es el idioma independiente, he logrado incrustar es decir, ventana en una aplicación de rubí de esta manera:

  • En primer lugar, cambie el estilo de la ventana de la aplicación externa (puede usar JNA para llamar a Winapi):

    style= getwindowlongptr (app_hwnd, gwl_style);

    estilo |= ws_child;

    estilo &= ~ ws_caption;

    estilo &= ~ ws_popup;

    setwindowlongptr (hwnd, gwl_style, estilo);

  • Definir la relación entre padres y niños entre Windows:

    setparent (app_hwnd, java_hwnd);

  • Escuchar / cambiar el tamaño de los eventos de su ventana de Java y aplicar nuevas posiciones en una ventana infantil.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top