报错:
”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。”
解决:
将代码从
public void Hook(){// FnHookProc为处理函数PHook = SetWindowsHookEx(5, FnHookProc, 0, AppDomain.GetCurrentThreadId());}
改为
internal HOOKPROC PHookProc = null;public void Hook(){// HOOKPROC为委托PHookProc = new HOOKPROC(FnHookProc);PHook = SetWindowsHookEx(5, PHookProc, 0, AppDomain.GetCurrentThreadId());}
PS:
1、创建委托后,再作为参数传递给函数