你用错了函数。
-
您在声明hWnd变量的同一行使用该变量。
-
hWnd还没有提到一个可行的窗口。
-
我不知道为什么要将返回的int放入HWND变量中。这毫无意义,也是您错误的根源。
-
同样,为了使函数工作,您的HWND变量HWND需要引用一个可行的窗口句柄。您可能需要调用另一个JNA函数来获得这个句柄。
例如。,
User32 user32 = User32.INSTANCE;
char path[] = new char[512];
long sleepTime = 2000;
try {
Thread.sleep(sleepTime);
} catch (InterruptedException e) {}
HWND hWnd = user32.GetForegroundWindow();
user32.GetWindowModuleFileName(hWnd, path, 512);
System.out.println("Foreground Window Module FileName: " +
Native.toString(path));
user32.GetWindowText(hWnd, path, 512);
System.out.println("Window text is: " + Native.toString(path));