创build另一个进程的HWND的子窗口? (例如屏幕保护程序预览)

我正在用Java编写一个屏幕保护程序。 这主要是针对Windows,但我更喜欢它像便携一样实用。

根据http://support.microsoft.com/kb/182383 ,当用命令行参数/p HWND调用屏幕保护程序时,屏幕保护程序应该“将屏幕保护程序预览为窗口的子窗口”。 据推测,这是屏幕保护程序设置对话框中的小预览。

那么,在Java中,如何创build一个属于其他人的窗口的孩子的JFrame或JComponent? 我已经看到在一个JPanelembeddedHWND(窗口句柄)这是一个相反的问题:开发人员控制父窗口,并希望embedded一个子窗口。 在我的情况下,我控制一个孩子的组件,我想embedded到父母不是“我的”。 我可以使用JNA来做到这一点吗?

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

我正在运行Windows 7,FWIW。

Solutions Collecting From Web of "创build另一个进程的HWND的子窗口? (例如屏幕保护程序预览)"

看看Jdic ,它有一个屏保的SDK ,所以至少你可以学习他们的代码。

你需要调用一个win32 api。 这个api是在C.你需要互操作层来做到这一点。 我想每个选项都是毛病。

对于Java,我认为这是JNI。 看到这个如何做到这一点。

您还需要将该值传递给SetParent 。

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