我正在用java开发一个桌面应用程序,我想要在某个进程中运行在窗口中的其他语言创建的另一个窗口的句柄。我知道它的标题、名称、图像名称和其他详细信息。我找不到用于此目的的 API。
请让我知道,是否有一些 API 或库来实现这一点。我们可以在 C++ 中轻松执行此操作,例如:
hwnd = FindWindow(NULL,(LPCWSTR)"XYZ");
最简单的解决方案是JNA。查找窗口示例:
WinDef.HWND hWnd = User32.INSTANCE.FindWindow("className", "windowName");
使用 JNI 获取该信息。基本上,JNI 允许您创建一个实现该函数的 C++ dll 并将值返回给 Java 应用程序。但是,如果您想在小程序中使用它,则必须对小程序进行签名(否则不能使用 dll)。
看看这个:http ://www3.ntu.edu.sg/home/ehchua/programming/java/JavaNativeInterface.html