我想取消所有挂钩消息(第3环),但无法执行,因为在Java中,int
类型的HHOOK
类型转换似乎是不可能的。
有人知道如何解决吗?
import com.sun.jna.platform.win32.Kernel32;
import com.sun.jna.platform.win32.User32;
public static void main(String[] args) {
final User32 lib = User32.INSTANCE;
for(int i = 9999999; i >= 0; i--)
lib.UnhookWindowsHookEx((HHOOK(i)); // Here is the trouble
}
谢谢。
答案 0 :(得分:0)
你不能。
虽然在本机Win32中,各种句柄基本上是整数类型,但它们不是指针,也不是真正的索引,并且您不应以蛮力解开尝试的方式。
在任何情况下,在JNA中,HHOOK类型都是一个对象,并且没有用于从in类型创建一个的API。
我不确定您要做什么,但是您应该保存从SetWindowsHookEx
收到的所有HHOOK,并且仅在这些对象上调用UnhookWindowsHookEx
。