我有一个将在 Windows 7(使用 Swing,App #1)上运行的 Java 应用程序,该应用程序以全屏方式运行(但不以独占模式运行)。我有另一个应用程序(应用程序 #2),它显示一个 GUI 来配置一个串行端口上的外部设备,我没有源,也根本无法更改。
我想将 App #2 嵌入 App #1 中,使其看起来像是父 Java 应用程序的一部分(隐藏文件 --> 退出按钮并隐藏最小化、最大化和关闭按钮)。
如果这种集成在 Java 应用程序内部是不可能的,我可以使用 Java 打开进程并只是监视它以保持它打开。它需要将窗口设置为“始终在顶部”,因为 App #1 是全屏的,并尽可能多地隐藏外部 MS Windows UI,以欺骗用户认为它不是外部应用程序。是否有某种方法使用 JNI 或其他方法来管理另一个进程窗口(屏幕位置、标题栏、最小化、最大化、关闭按钮可见性)和我的 Java 应用程序内部的进程状态?
如果需要,我很乐意提供更多信息。
最佳答案
以下方案与语言无关,我设法通过这种方式将 IE 窗口嵌入到 Ruby 应用程序中:
style = GetWindowLongPtr(APP_HWND, GWL_STYLE);
风格 |= WS_CHILD;
样式 &= ~WS_CAPTION;
样式 &= ~WS_POPUP;
SetWindowLongPtr(HWND, GWL_STYLE, style);
SetParent(APP_HWND, JAVA_HWND);
关于java - 在 Java 应用程序中嵌入外部应用程序(或伪造它),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3307320/