private void StartMouseHook()
{
Win32Api.HookProc mouseHookProcedure = new Win32Api.HookProc(MouseHookProc);
m_hMouseHook = Win32Api.SetWindowsHookEx(WH_MOUSE_LL,
mouseHookProcedure,
Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]),
0);
}
这样会造成回调函数给收回。出现CallbackOnCollectedDelegate异常。
解决方法:
private static Win32Api.HookProc mouseHookProcedure;
private void StartMouseHook()
{
mouseHookProcedure = new Win32Api.HookProc(MouseHookProc);
m_hMouseHook = Win32Api.SetWindowsHookEx(WH_MOUSE_LL,
mouseHookProcedure,
Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]),
0);
}
这样回调函数就不会给收回了
转载于:https://blog.51cto.com/myitworld/513950