2

我正在用 Java 编写屏幕保护程序。它主要用于 Windows,但我希望它尽可能便携。

根据http://support.microsoft.com/kb/182383,当使用命令行 args 调用屏幕保护程序时/p HWND,屏幕保护程序应“将屏幕保护程序预览为 window 的子项”。大概这就是屏幕保护程序应该如何在“屏幕保护程序设置”对话框中进行小预览。

那么,如何在 Java 中创建属于其他人的窗口的子窗口的 JFrame 或 JComponent?我在 JPanel 中查看了 Embed HWND (Window Handle), 这是一个相反的问题:开发人员控制父窗口并希望嵌入子窗口。在我的例子中,我控制了一个我想要嵌入到不是“我的”父级的子组件。我可以使用JNA来做到这一点吗?

除了 Java 代码之外,我宁愿不必维护 C 代码。(所以 JNI 不是首选。)我知道JDIC应该满足这种需求,但我读到 JDIC 基本上已经死了。

我正在运行 Windows 7,FWIW。

4

2 回答 2

0

看看Jdic,它有一个用于屏幕保护程序的 SDK,所以至少你可以研究他们的代码..

于 2012-03-27T17:49:04.180 回答
0

你需要调用一个win32 api。该 api 在 C 中。您需要互操作层来执行此操作。我认为每一个选择都会很糟糕。

对于Java,我认为是JNI。 请参阅此内容以了解如何操作。

您还需要将该值传递给SetParent

屏幕保护程序以与屏幕保护程序对话框相同的安全权限运行,因此这不是安全问题。

于 2012-03-31T09:03:18.683 回答