【发布时间】:2011-08-11 15:30:38
【问题描述】:
我在上一个帖子(https://stackoverflow.com/questions/5206633/java-find-out-what-application-window-is-in-focus))上问了一个类似的问题,但我被引导使用 JNI,但我并没有取得太大的成功......我已经阅读了一些教程,虽然有些工作正常,但其他我是不是还是不能得到我需要的信息,就是前台窗口的标题。
现在我正在研究 JNA,但我不知道如何访问 GetForegroundWindow() ...我想我可以在使用此代码获取窗口句柄后打印文本(在另一个线程上找到) :
import com.sun.jna.*;
import com.sun.jna.win32.*;
public class jnatest {
public interface User32 extends StdCallLibrary {
User32 INSTANCE = (User32) Native.loadLibrary("user32", User32.class);
int GetWindowTextA(PointerType hWnd, byte[] lpString, int nMaxCount);
}
public static void main(){
byte[] windowText = new byte[512];
PointerType hwnd = //GetForegroundWindow() (?)...
User32.INSTANCE.GetWindowTextA(hwnd, windowText, 512);
System.out.println(Native.toString(windowText));
}
}
有什么建议吗?谢谢!
【问题讨论】: