c#中通过设置钩子监视鼠标移动

using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace HotelManage
{
  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
    }
    void hook_onMouseChange(object sender, EventArgs e)
    {
      this.Text = Cursor.Position.ToString();
    }
    private void Form1_Load(object sender, EventArgs e)
    {
      Win32Hook hook = new Win32Hook();
      hook.onMouseChange += new EventHandler(hook_onMouseChange);
      hook.SetHook();
    }
  }
  public class Win32Hook
  {
    [DllImport("kernel32")]
    public static extern int GetCurrentThreadId();
    [DllImport("user32", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
    public static extern int SetWindowsHookEx(
      HookType idHook,
      HOOKPROC lpfn,
      int hmod,
      int dwThreadId);
    public enum HookType
    {
      WH_GETMESSAGE = 3
    }
    public delegate int HOOKPROC(int nCode, int wParam, int lParam);
    public event System.EventHandler onMouseChange;
    public void SetHook()
    {
      SetWindowsHookEx(HookType.WH_GETMESSAGE,
        new HOOKPROC(this.MyKeyboardProc),
        0,
        GetCurrentThreadId());
    }
    public int MyKeyboardProc(int nCode, int wParam, int lParam)
    {
      if (onMouseChange != null)
      {
        onMouseChange(null, null);
      }
      return 0;
    }
  }
}

时间: 2024-10-31 11:22:43

c#中通过设置钩子监视鼠标移动的相关文章

Excel中如何设置鼠标经过时显示图片

要实现Excel表格中鼠标指向单元格就出现相关图片的互动效果,只要通过Excel2007的添加图片批注功能就可以轻松做到. 下面,我们以制作产品列表为例,展示具体的添加图片方法. 鼠标指向单元格,自动显示预设图片 单个添加图片 右击目标单元格,选择"添加批注",删除批注输入框中所有文字,接着鼠标移动到批注输入框的边线,当指针变成十字箭头时,单击鼠标右键选择"设置批注格式"→"颜色与线条" →"填充效果"→"图片&qu

鼠标点击坐标-在鼠标钩子中,如何实时获得鼠标的屏幕坐标?

问题描述 在鼠标钩子中,如何实时获得鼠标的屏幕坐标? 在鼠标钩子的WM_LBUTTONDOWN消息中,我想获得鼠标点击瞬间的坐标.注意,是鼠标点击瞬间. 我现在知道有两种方法 1.GET_X_LPARAM(lparam)和GET_Y_LPARAM(lparam). 这种方法获取的是相对于钩子的鼠标坐标,但是钩子不像窗体,没有自己的坐标吧.我获取到的坐标要么很大,要么是负数...然后我尝试用钩子句柄来转换,ClientToScreen((HWND)hMouseHook, &pt).得到的pt值也不

自己设置了一个鼠标钩子,然后点击获取窗口坐标,但是坐标不对。

问题描述 自己设置了一个鼠标钩子,然后点击获取窗口坐标,但是坐标不对. 自己设置了一个全局的鼠标钩子,然后触发点击获取窗口坐标,当点击在窗口外的时候,获取到窗口坐标是对的,但是点击在窗口里面的时候,获取的到的窗口坐标就不对了,好像是0,0.不知道什么原因,该怎么解决这个问题? 解决方案 获取鼠标点击的坐标处理 解决方案二: 刚才尝试过,我直接把窗口坐标设置成全局变量,也不点击一次获取一次了,然后再尝试,问题依旧.那么说,点击窗口外,是正常的,点击窗口内,获取的坐标就变成了零.这是为什么?

Windows中如何获取键盘和鼠标处于空闲状态的时间

本文配套源码 在编写程序的过程中,我遇到了这样的需求:在基于Windows 9x 或 Windows NT4.0 的程序中,要求确定键盘.鼠标处于空闲状态的时间.查询了有关资料文档以后,发现Windows 9x和Windows NT4.0 没有提供API或系统调用来实现这样的功能.但是,在Windows 2000中提供了一个新的函数:GetLastInputInfo(),这个函数使用结构 LASTINPUTINFO 作为参数:LASTINPUTINFO lpi; lpi.cbSize = siz

搜狗输入法中怎样设置自定义短语?

  搜狗输入法中怎样设置自定义短语?         自定义短语功能可以实现自定义输出内容,例如打aa可以输出"搜狗输入法"等类似的样子,如图: 设置方法如下: 1.右键候选框或者状态栏--设置属性--高级--自定义短语,如图: 2.在缩写处:写你想输入的拼音串;候选位置处:选择输出内容在候选框的位置;内容处:输入你想输出的内容,如图: 以上,保存后就可以生效啦! 还有种方式是: 在任意地方打出缩写拼音,鼠标指在拼音处--选择添加短语即可,如图:

word2007中怎么设置首字下沉

word2007中怎么设置首字下沉   word2007设置首字下沉的步骤如下: 步骤一:首先,我们在word文档中输入一段文字,如图 步骤二:然后我们的目的是将这段文字的首字,也就是"我"字变成下沉的文字状态;这个时候我们将鼠标放置在"我"字前面,然后点击工具栏的"插入" 步骤三:在插入的下拉菜单中,我们选择右侧"文本"栏的"首字下沉" 步骤四:然后我们接着选择"首字下沉选项"如图 步

在word文档中怎么设置文字换行和分页?

  在word文档中怎么设置文字换行和分页? 1.首先,在word文中,鼠标单击选择文字或者鼠标放在前段,也可以放在后端, 2.鼠标右键选择"段落",如图 3.弹出段落选项窗口,找到"换行和分页"选项卡,如图 4.有分页选择,看提示,如图 5.有行号和断字选择,如图 6.选择就勾勾好后,确定就可以了, 以上就是在word文档中怎么设置文字换行和分页方法介绍,操作很简单的,大家按照上面步骤进行操作即可,希望这篇文章能对大家有所帮助

Win7系统用户在局域网中共享设置方法

现在,一般的家庭有两三台电脑已经相当普遍,而其中的一些品牌笔记本,则可能已经升级安装了最新的Windows 7操作系统(以下简称Win 7).那么在这样的情况下,如何组建纯Win 7系统环境或Win 7与XP系统混合环境下的家庭局域网,又该如何设置文件共享呢?如果你也有同样的疑问,请详细查看本文当中介绍的方法,相信都可以迎刃而解. 两台电脑以上的局域网.WIN7操作系统 步骤/方法 右击桌面网络----属性----更改高级共享设置 (注释:查看当前网络 比如:家庭网络.公共网络 等!) "我这里

edius中怎么设置Alpha转场特效

  1.新建一个工程文件,并导入两张静态图像. 2.在特效面板中找到"Alpha自定义图像转场效果". 3.选中"Alpha自定义图像"转场效果,按住鼠标左键将其拖动到两张素材图片之间. 4.选中添加到时间线上的"Alpha自定义图像"转场效果,单击鼠标右键,在弹出的右键菜单中选择"设置"选项. 5.弹出"Alpha自定义图像"对话框,如图所示. 6.点击"Alpha自定义图像"右侧的位