/// <summary> /// マウスフックの削除 /// </summary> /// <param name="_nCode">現在のフックプロシージャに渡されたnCode</param> /// <param name="_wParam">現在のフックプロシージャに渡されたwParam</param> /// <param name="_lParam">現在のフックプロシージャに渡されたlParam</param> /// <returns>フックチェーン内の次のフックプロシージャの戻り値</returns> private IntPtr MouseHookProc(int _nCode, IntPtr _wParam, IntPtr _lParam) { if (_nCode >= 0 && !m_bClose) { MouseHook.MouseHookStruct mouseHookStruct = (MouseHook.MouseHookStruct)Marshal.PtrToStructure(_lParam, typeof(MouseHook.MouseHookStruct)); if (mouseHookStruct != null) { String strText = "Scale Capture" + " x = " + mouseHookStruct.pt.x.ToString("d") + " : y = " + mouseHookStruct.pt.y.ToString("d"); lblTitle.Text = strText; float fScale = (float)(sliderScale.Value * 0.1); Bitmap bitmap = new Bitmap(200, 200); Graphics graphics = Graphics.FromImage(bitmap); graphics.CopyFromScreen(mouseHookStruct.pt.x - 100, mouseHookStruct.pt.y - 100, 0, 0, bitmap.Size); graphics.Dispose(); m_scaleImgProc.GoImgProc(bitmap, fScale); pictureBox.Image = m_scaleImgProc.bitmap; pictureBox.Refresh(); } } return(MouseHook.CallNextHookEx(m_hHook, _nCode, _wParam, _lParam)); }
public IntPtr MouseHookProc(int _nCode, IntPtr _wParam, IntPtr _lParam) { if (_nCode >= 0) { MouseHook.MouseHookStruct mouseHookStruct = (MouseHook.MouseHookStruct)Marshal.PtrToStructure(_lParam, typeof(MouseHook.MouseHookStruct)); String strText = "x = " + mouseHookStruct.pt.x.ToString("d") + " : y = " + mouseHookStruct.pt.y.ToString("d"); this.Text = strText; } return(MouseHook.CallNextHookEx(m_hHook, _nCode, _wParam, _lParam)); }
/// <summary> /// Handle mouse event. /// </summary> /// <param name="code">Code.</param> /// <param name="msg">Message.</param> /// <param name="mouse">Mouse.</param> /// <returns>Value which depends on the hook type.</returns> private static IntPtr HandleMouseEvent(int code, uint msg, Mouse mouse) { if (code >= 0) { lock (stateLocker) { DeviceState state = GetDeviceState(msg, mouse); HandleDeviceEvent(state, oldState); oldState = state; } } return(MouseHook.CallNextHookEx(mouseEventHandle, code, msg, mouse)); }
private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam) { if (nCode >= 0 && MouseHook.MouseMessages.WM_MOUSEMOVE == (MouseHook.MouseMessages)wParam) { MouseHook.MSLLHOOKSTRUCT hookStruct = (MouseHook.MSLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(MouseHook.MSLLHOOKSTRUCT)); if (hookStruct.pt.x < 0) { System.Windows.Forms.Cursor.Position = new System.Drawing.Point(0, hookStruct.pt.y); return((IntPtr)1); } } return(MouseHook.CallNextHookEx(_hookID, nCode, wParam, lParam)); }
/// <summary> /// マウスフックの削除 /// </summary> /// <param name="_nCode">現在のフックプロシージャに渡されたnCode</param> /// <param name="_wParam">現在のフックプロシージャに渡されたwParam</param> /// <param name="_lParam">現在のフックプロシージャに渡されたlParam</param> /// <returns>フックチェーン内の次のフックプロシージャの戻り値</returns> private IntPtr MouseHookProc(int _nCode, IntPtr _wParam, IntPtr _lParam) { if (_nCode >= 0) { MouseHook.MouseHookStruct mouseHookStruct = (MouseHook.MouseHookStruct)Marshal.PtrToStructure(_lParam, typeof(MouseHook.MouseHookStruct)); if (mouseHookStruct != null) { String strText = "Screen Capture" + " x = " + mouseHookStruct.pt.x.ToString("d") + " : y = " + mouseHookStruct.pt.y.ToString("d"); lblTitle.Text = strText; Bitmap bitmap = new Bitmap(400, 400); Graphics graphics = Graphics.FromImage(bitmap); graphics.CopyFromScreen(mouseHookStruct.pt.x - 200, mouseHookStruct.pt.y - 200, 0, 0, bitmap.Size); graphics.Dispose(); pictureBox.Image = bitmap; pictureBox.Refresh(); } } return(MouseHook.CallNextHookEx(m_hHook, _nCode, _wParam, _lParam)); }