Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WH_轴颈后放钩在C#_C#_Interop_Hook - Fatal编程技术网

WH_轴颈后放钩在C#

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

我正在尝试为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 && 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)


在某个时候写下来。当我运行时,它只是挂起

我也有同样的问题。我可以很好地记录这些值,但是回放很麻烦。你找到解决办法了吗?