我正在研究使用JNA在运行应用程序时更改鼠标光标。目前,我只是尝试光标,我已经得到了下面的代码。我遇到的问题是将HINSTANCE对象传递给LoadCursor(),以便我可以在SetCursor()中使用HCURSOR对象。我知道HMOD和HINSTANCE在User32库中是相同的,所以这就是我使用HMODULE的原因。
有人能指出我正确的方向吗?我绝对迷失在这里。
每次运行时都会收到此错误: 线程" main"中的例外情况java.lang.UnsatisfiedLinkError:查找函数时出错' GetModuleHandle':找不到指定的过程。
import com.sun.jna.*;
import com.sun.jna.platform.win32.WinDef.*;
public class changeMouse {
public interface User32 extends Library {
User32 INSTANCE = (User32) Native.loadLibrary("user32", User32.class);
HWND GetForegroundWindow();
HCURSOR SetCursor(HCURSOR cursor);
HCURSOR LoadCursor(HINSTANCE hIn, String lp);
}
public interface Kernel32 extends Library {
Kernel32 INSTANCE = (Kernel32) Native.loadLibrary("kernel32", Kernel32.class);
HMODULE GetModuleHandle(String name);
}
public static void main(String[] args) {
User32 user32 = User32.INSTANCE;
HMODULE hmod = Kernel32.INSTANCE.GetModuleHandle(null);
}
}