用键盘控制鼠标移动!!
在研究如何模仿 搜狗输入法截图功能时的发现!可以用键盘或者编程的方式控制当前,鼠标光标的位置!废话不多说,主要要用到一个WinApi函数!
/// 设置鼠标光标在整个屏幕的位置
SetCursorPos(
int X, // 鼠标的X坐标
int Y // 鼠标的Y坐标
)
注:X,Y坐标是指相对于 整个屏幕的坐标,而不是当前应用程序的坐标!
///获取当前鼠标光标的在整个屏幕上的位置
GetCursorPos(
out point p // 以一个结构体的方式,放回当前的鼠标光标的位置!
)
注:这个api函数,在.net类库中可以找到,相对应的托管代码!那就是Cursor这个类中的pos属性!有兴趣的朋友可以翻看MSDN关于这个类的相关信息!
下面是demo(支持非窗口焦点的情况下)
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
private enum MouseAction : int
{
MOUSEEVENTF_MOVE = 0x0001, //移动鼠标
MOUSEEVENTF_LEFTDOWN = 0x0002,// 模拟鼠标左键按下
MOUSEEVENTF_LEFTUP = 0x0004, //模拟鼠标左键抬起
MOUSEEVENTF_RIGHTDOWN = 0x0008,// 模拟鼠标右键按下
MOUSEEVENTF_RIGHTUP = 0x0010, //模拟鼠标右键抬起
MOUSEEVENTF_MIDDLEDOWN = 0x0020, //模拟鼠标中键按下
MOUSEEVENTF_MIDDLEUP = 0x0040, //模拟鼠标中键抬起
MOUSEEVENTF_ABSOLUTE = 0x8000 //标示是否采用绝对坐标
}
[DllImport("User32")]
public extern static void SetCursorPos(int x, int y);
[DllImportAttribute("user32.dll", EntryPoint = "RegisterHotKey")]
private static extern bool registerHotKey
(
IntPtr hWnd, //接受热键的窗口句柄(句柄:窗体的系统代号)
int id, //热键编号
int fsModifiers, //是否为组合键 例如ctrl shift 等等
int vk //一般按键 a,c 等等
);
[DllImportAttribute("user32.dll", EntryPoint = "UnregisterHotKey")]
private static extern bool unregisterHotKey
(
IntPtr hWnd, //接受热键的窗口句柄(句柄:窗体的系统代号)
int id //热键编号上面注册热键的编号
);
[System.Runtime.InteropServices.DllImport("user32")]
private static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
private void frmMain_Load(object sender, EventArgs e)
{
registerHotKey(this.Handle, 10001, 0, (int)Keys.Left);
registerHotKey(this.Handle, 10002, 0, (int)Keys.Right);
registerHotKey(this.Handle, 10003, 0, (int)Keys.Up);
registerHotKey(this.Handle, 10004, 0, (int)Keys.Down);
registerHotKey(this.Handle, 10005, 0, (int)Keys.Enter);
}
private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
{
unregisterHotKey(this.Handle, 10001);
unregisterHotKey(this.Handle, 10002);
unregisterHotKey(this.Handle, 10003);
unregisterHotKey(this.Handle, 10004);
unregisterHotKey(this.Handle, 10005);
} private void addInfoToList(String s)
{
//this.listBox1.Items.Add(s);
}
protected override void WndProc(ref Message m)
{
const int WM_HOTKEY = 0x0312;
switch (m.Msg)
{
case WM_HOTKEY:
Point nowPoint = Cursor.Position;
switch (m.WParam.ToInt32())
{
case 10001:
SetCursorPos(nowPoint.X - 10, nowPoint.Y);
base.WndProc(ref m);
break;
case 10002:
SetCursorPos(nowPoint.X + 10, nowPoint.Y);//设置当前鼠标的位置
base.WndProc(ref m);
break;
case 10003:
SetCursorPos(nowPoint.X, nowPoint.Y - 10);
base.WndProc(ref m);
break;
case 10004:
SetCursorPos(nowPoint.X, nowPoint.Y + 10);
base.WndProc(ref m);
break;
case 10005:
mouse_event((int)(MouseAction.MOUSEEVENTF_LEFTDOWN | MouseAction.MOUSEEVENTF_LEFTUP),
0,
0,
0,
0);
//mouse_event((int)(MouseAction.MOUSEEVENTF_LEFTDOWN | MouseAction.MOUSEEVENTF_LEFTUP),
// 0,
// 0,
// 0,
// 0);
//base.WndProc(ref m);
break;
}
break;
default:
base.WndProc(ref m);
break;
}
}
用键盘控制鼠标移动!!相关推荐
- mfc键盘控制移动鼠标光标_如何在Windows中使用键盘控制鼠标光标
mfc键盘控制移动鼠标光标 If you're stuck without a mouse temporarily, don't worry-you can still use your PC. Yo ...
- Python自动化 | 通过键盘控制鼠标来玩赛尔号
最近心血来潮回归赛尔号(十年铁皮常不请自来) 做剧情任务的时候有个小游戏,拖动黄色的按钮到达终点,白色的是存档点,途中如果碰到墙壁需要对战野怪,打赢了可以从存档点出发,但是由于刚回归,精灵跟不上时代, ...
- python键盘控制_python实现键盘控制鼠标移动
玩QQ桌球游戏时,有时候用鼠标控制鼠标指针的微小移动比较费劲儿,所以想写个程序,可以用键盘的上下左右键来控制鼠标的移动,每次只移动一个像素. 本脚本依赖pywin32.pyHook和pymouse这两 ...
- c++用键盘按键控制光标移动_如何在Windows10中用键盘控制鼠标光标
如果你的鼠标突然坏掉了,此时找不到替代鼠标,或者你使用的鼠标是电池供电的,此时电量耗尽,那么你可以将键盘配置为鼠标暂时缓解燃眉之急. 设置步骤 键盘鼠标控制功能内置于Windows10中.首先进入设置 ...
- win10 java模拟鼠标_[pc玩家]如何在Windows10中用键盘控制鼠标光标
如果你的鼠标突然坏掉了,此时找不到替代鼠标,或者你使用的鼠标是电池供电的,此时电量耗尽,那么你可以将键盘配置为鼠标暂时缓解燃眉之急. 设置步骤 键盘鼠标控制功能内置于Windows10中.首先进入设置 ...
- AHK 键盘控制鼠标点击屏幕不同位置
按键控制鼠标点击屏幕特定位置 按键控制重设屏幕点击位置 按键显示当前鼠标在屏幕上的位置 V1.0代码功能: 按 A 和 D 分别对应点击两个单独的屏幕坐标 按 Q 和 E分别对应重新设置两个单独的屏幕 ...
- linux keynav 鼠标可以扔掉了键盘控制鼠标
我是一个vim用户,喜欢使用键盘操作大部分的事情.无奈现在很多软件从设计之初就是为了鼠标设计的.就导致有些时候不得不使用鼠标.那么退一步讲,能否使用键盘临时控制一下鼠标呢?这样就可以进一步减少鼠标的使 ...
- linux键盘控制鼠标软件下载,手机控制电脑软件(Mouse Server)
Mouse Server(手机控制电脑软件)是WiFi Mouse的配套软件,快速把你手机变成无线鼠标.键盘.触摸板的应用,它还支持语音识别直接输出文本到电脑端,安装软件后连接手机可以让手机控制电脑! ...
- 鼠标右边的数字按键无效(不是LOCK),原因是由于勾上使用键盘控制鼠标
解决方法:打开:控制面板\轻松使用\轻松使用设置中心\使鼠标更易于使用
最新文章
- “趣冷淡”怎么看?网络电话寻求共同语言
- jspservlet初体验——用户登录功能实现
- 读书笔记之《The Art of Readable Code》Part 2
- java web汽车商城_基于jsp的汽车销售商城系统
- 2x麦克劳林公式_极限求解-泰勒公式理解
- bzoj 3517: 翻硬币
- python 初级笔记
- macOS上简便好用的看图软件分享
- 成为0.01%!利用TensorFlow.js和深度学习,轻松阅读古草体文字
- 什么是串行接口和并行接口
- 小学校计算机教室年度工作总结,小学计算机教师年度工作总结
- 《炬丰科技-半导体工艺》石英深反应离子刻蚀特性研究
- A performance evaluation of local descriptors——局部描述子评估译文(1,2,...)
- Aria2一键安装及管理脚本,搭建AriaNg前端
- 基于ARM架构openEuler系统通过qemu模拟器自动安装启动ARM架构的openEuler虚拟机
- Python批量word2pdf、ppt2pdf
- 时间戳90K是什么意思?
- Java解析魔兽争霸3录像W3G文件(三):解析游戏开始前的信息
- c#编写activeX控件详细教程,底部附有下载地址
- win10关闭系统更新的设置