gpt4 book ai didi

java - 如何使用 JNI 或 JNA 读取窗口标题?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:04:27 25 4
gpt4 key购买 nike

希望回到发展空间;主要使用 Java 调用一些 native win32 函数(我不想在 .NET 中构建)...

有人可以指点我可以使用 Java (JNI/JNA/SWIG) 从不同的运行窗口读取标题的地方吗?假设您知道您尝试 Hook 的应用程序在内存空间中的哪个位置。

最佳答案

在 JNA 中:

public interface User32 extends StdCallLibrary {
User32 INSTANCE = (User32) Native.loadLibrary("user32", User32.class);

int GetWindowTextA(PointerType hWnd, byte[] lpString, int nMaxCount);
}

使用方法:

byte[] windowText = new byte[512];

PointerType hwnd = ... // assign the window handle here.
User32.INSTANCE.GetWindowTextA(hwnd, windowText, 512);
System.out.println(Native.toString(windowText));

您可能希望为 HWND 使用正确的结构映射,并允许 unicode 支持;您可以在 JNA website 找到有关如何执行此操作的信息和更多示例。 .

GetWindowText 函数的文档在此处可用 MSDN .

JNA 文档位于 jna.dev.java.net

关于java - 如何使用 JNI 或 JNA 读取窗口标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1173926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com