Java JNA:如何将整数(int)转换为HHOOK?

时间:2018-11-17 14:13:52

标签: java jna unhookwindowshookex

我想取消所有挂钩消息(第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

}

谢谢。

1 个答案:

答案 0 :(得分:0)

你不能。

虽然在本机Win32中,各种句柄基本上是整数类型,但它们不是指针,也不是真正的索引,并且您不应以蛮力解开尝试的方式。

在任何情况下,在JNA中,HHOOK类型都是一个对象,并且没有用于从in类型创建一个的API。

我不确定您要做什么,但是您应该保存从SetWindowsHookEx收到的所有HHOOK,并且仅在这些对象上调用UnhookWindowsHookEx