WH_轴颈后放钩在C#
我正在尝试为C#中的“WH_JOURNALPLAYBACK”钩子创建回调。这是密码WH_轴颈后放钩在C#,c#,interop,hook,C#,Interop,Hook,我正在尝试为C#中的“WH_JOURNALPLAYBACK”钩子创建回调。这是密码 private delegate IntPtr JournalPlaybackProc(int nCode, IntPtr wParam, IntPtr lParam); private static IntPtr JournalPlaybackCallback(int nCode, IntPtr wParam, IntPtr lParam) { if (HC_GETNEXT == nCode
private delegate IntPtr JournalPlaybackProc(int nCode, IntPtr wParam, IntPtr lParam);
private static IntPtr JournalPlaybackCallback(int nCode, IntPtr wParam, IntPtr lParam)
{
if (HC_GETNEXT == nCode && curr < EventMsgs.Count)
{
EVENTMSG hookStruct = (EVENTMSG)Marshal.PtrToStructure(lParam, typeof(EVENTMSG));
EVENTMSG currentMsg = EventMsgs[curr];
hookStruct.message = currentMsg.message;
hookStruct.paramL = currentMsg.paramL;
hookStruct.paramH = currentMsg.paramH;
hookStruct.hwnd = currentMsg.hwnd;
hookStruct.time = currentMsg.time;
}
if (HC_SKIP == nCode)
{
curr++;
}
if (curr == EventMsgs.Count)
{
UnhookWindowsHookEx(_journalPlaybackProcHookID);
_journalPlaybackProcHookID = IntPtr.Zero;
}
return CallNextHookEx(_journalPlaybackProcHookID, nCode, wParam, lParam);
}
私有委托IntPtr JournalPlaybackProc(intncode、IntPtr wParam、IntPtr lParam);
专用静态IntPtr JournalPlaybackCallback(int nCode、IntPtr wParam、IntPtr lParam)
{
if(HC_GETNEXT==nCode&&curr
如果回调正确,我想我需要用数据修改lParam的值来回放事件。我该怎么做 我想你需要
StructureToPtr(hookStruct,lParam,true)
在某个时候写下来。当我运行时,它只是挂起 我也有同样的问题。我可以很好地记录这些值,但是回放很麻烦。你找到解决办法了吗?