Exemple #1
0
        private void InitCallback()
        {
            MouseCallback = (code, wparam, lparam) =>
            {
                if ((int)wparam == MouseUtil.WM_MOUSEMOVE || (int)wparam == MouseUtil.WM_NCMOUSEMOVE)
                {
                    var mhs = (MouseUtil.MouseHookStruct)Marshal.PtrToStructure(lparam, typeof(MouseUtil.MouseHookStruct));

                    x = mhs.pt.x;
                    y = mhs.pt.y;
                    MouseUtil.InvalidateMouseWindow(x, y);

                    label1.Text = string.Format("x : {0} y : {1}", mhs.pt.x, mhs.pt.y);
                }
                return(IntPtr.Zero);
            };

            IPCCallback = (lpString, dwPid) =>
            {
                if (dwPid != 0 && dwPid != OutputUtil.GetCurrentProcessId() && dwPid == OutputUtil.GetMouseWindowPid(x, y))
                {
                    string str = Marshal.PtrToStringAuto(lpString);
                    syncContext.Post((o) =>
                    {
                        this.label2.Text = o.ToString();
                    }, str);
                }
                return(0);
            };
        }
Exemple #2
0
        private void Form1_Load(object sender, EventArgs e)
        {
            InitCallback();
            OutputUtil.SetIPCCallback(IPCCallback);
            OutputUtil.SetCBTHook();
            OutputUtil.StartPipe();
            MouseUtil.SetMouseHook(MouseCallback);

            syncContext = SynchronizationContext.Current;
        }
Exemple #3
0
 private void Form1_FormClosed(object sender, FormClosedEventArgs e)
 {
     MouseUtil.UnSetMouseHook();
     OutputUtil.StopPipe();
     OutputUtil.UnSetCBTHook();
 }