我目前正在开发一个 Java 项目,我们必须使用其他人创建的头像。该头像是一个图形可执行文件。它通过 xmlrpc 与 Java 应用程序通信。
我希望能够在我的 Java 应用程序中运行(嵌入)此可执行文件。我不仅仅想执行可执行文件,我还希望它在 Java 应用程序中实际可见。
我知道这种行为在 C#(Process 类)中是可能的,所以我想知道:这在 Java 中也可能吗?
应用程序中的头像必须是可缩放的。
最佳答案
C#
example you gave使用Win32 API使用 SetParent
的技巧将正在运行的嵌入式可执行文件的主窗口的父窗口从桌面窗口更改为新创建的控件。为此,您需要:
- 创建一个WinAPI Window 控件来包含嵌入的可执行文件
- 有权访问Windows API以获取正在运行的 .exe 主窗口的句柄
- 有权访问Windows API以使用
SetParent
问题是您无权访问Java 中的Windows API。甚至使用 JNI
或类似JNA这样做并不容易,因为您无法直接访问 JVM 创建的 WinAPI Window 控件(除非使用一些未记录的特定于 Windows 的 Sun API)。
关于java - 在 JFrame 中运行可执行文件 (.exe),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16358040/