在Java中获取窗口句柄
我一直在尝试使用以下代码获取JFrame的当前窗口指针:在Java中获取窗口句柄,java,jframe,window,native,handle,Java,Jframe,Window,Native,Handle,我一直在尝试使用以下代码获取JFrame的当前窗口指针: public class MainClass { private JFrame mainFrame; private JPanel controlPanel; public static void main(String[] args) { JFrame jFrame = new JFrame(); jFrame.setSize(400,400); jFrame.s
public class MainClass
{
private JFrame mainFrame;
private JPanel controlPanel;
public static void main(String[] args) {
JFrame jFrame = new JFrame();
jFrame.setSize(400,400);
jFrame.setVisible(true);
try {
jFrame.setVisible(true);
final HWND hwnd = new HWND(Native.getComponentPointer(jFrame));
System.out.println(hwnd);
} finally {
jFrame.dispose();
}
}
}
但是,输出的结果总是'native@0x0'. 我做错了什么
谢谢大家! 你在用什么windows或Mac?如果使用Mac,则无法获取指针,因为此方法只能从windows计算机获取windows的指针 问题将出现在Native.java代码中。我正在导入'com.sun.jna.Native'。有什么问题吗@很抱歉,我假设这是您自己的代码。不确定它是否有助于获取句柄,但使用JNA,您也可以在Mac上获取进程ID
CLibrary.INSTANCE.getpid()
,然后使用AppleScript,您可以通过进程ID与它进行交互。这是一种黑客攻击,但它可以工作。