//钩子回调
    private unsafe int Hook(int nCode, int wParam, int lParam)
    {
        try
        {
            IntPtr    p = new IntPtr(lParam);
            CWPSTRUCT m = (CWPSTRUCT)Marshal.PtrToStructure(p, typeof(CWPSTRUCT));

            if (m.message == 74)
            {
                COPYDATASTRUCT entries  = (COPYDATASTRUCT)Marshal.PtrToStructure((IntPtr)m.lparam, typeof(COPYDATASTRUCT));
                IPC_Buffer     entries1 = (IPC_Buffer)Marshal.PtrToStructure((IntPtr)entries.lpData, typeof(IPC_Buffer));
                IntPtr         intp     = new IntPtr(entries1.cbBuffer);
                string         str      = new string((sbyte *)intp);
                SetUI(str);
                Debug.Log("json数据:" + str);
            }
            if (CallNextProc)
            {
                return(CallNextHookEx(idHook, nCode, wParam, lParam));
            }
            else
            {
                //return 1;
                return(CallNextHookEx(idHook, nCode, wParam, lParam));
            }
        }
        catch (Exception ex)
        {
            Debug.Log(ex.Message);
            return(0);
        }
    }
        //钩子回调
        private unsafe int Hook(int nCode, int wParam, int lParam)
        {
            try
            {
                IntPtr    p = new IntPtr(lParam);
                CWPSTRUCT m = (CWPSTRUCT)Marshal.PtrToStructure(p, typeof(CWPSTRUCT));

                if (m.message == 74)
                {
                    COPYDATASTRUCT entries  = (COPYDATASTRUCT)Marshal.PtrToStructure((IntPtr)m.lparam, typeof(COPYDATASTRUCT));
                    IPC_Buffer     entries1 = (IPC_Buffer)Marshal.PtrToStructure((IntPtr)entries.lpData, typeof(IPC_Buffer));
                    IntPtr         intp     = new IntPtr(entries1.cbBuffer);
                    string         str      = new string((sbyte *)intp);
                    OnReceived(str);
                }
                return(DataUtility.CallNextHookEx(idHook, nCode, wParam, lParam));
            }
            catch (Exception ex)
            {
                if (OnError != null)
                {
                    OnError(ex.Message);
                }
                return(0);
            }
        }