我目前正在尝试使用 EasyHook 在 user32.dll 中挂钩“MessageBeep”函数。如果我正在运行 [this example][1] 一切似乎都正常。但是,如果我将第 52 行和第 60 行中的线程 ID 替换为我的测试应用程序的线程 ID,则该钩子不适用于 ohter 程序。
为什么 SetExclusiveACL-Method 不接受任何其他线程 ID?例如
hook.ThreadACL.SetExclusiveACL(new int[] { 8788 });
我正在使用以下代码来检索我的测试应用程序的线程 ID,并验证钩子是否适用于 MessageBeep 函数:
Sub Main()
While True
Console.WriteLine(GetCurrentThreadId().ToString)
MessageBeep(&H40)
If Console.ReadKey().KeyChar = "c"c Then
Console.Clear()
End If
End While
End Sub