winapi获取鼠标指向当前元素
最近接到这么个需求,要求获取 windows 下鼠标当前位置的所在应用。代码如下:
int main()
{POINT point;Sleep(1000);GetCursorPos(&point); //获取鼠标当前坐标HWND h = WindowFromPoint(point); //根据坐标获取所在窗口句柄printf("handle: %d\n", (int)h);printf("x=%d, y=%d\n", point.x, point.y);printf("window text: ");char s[400] = {0};boolean res = GetWindowText(h, s, 400); //根据窗口句柄获取窗口标题for (int i = 0; i < 400; i++) {printf("%c", s[i]);}return 0;
}
如代码中注释,主要就是用到 GetCursorPos()、WindowFromPoint() 和 GetWindowText() 三个方法。编译、执行。当鼠标放在当前 vscode 窗口时:
控制台 window text 一行显示的也是当前应用程序,没问题。当鼠标放到桌面任务栏时:
显示乱码了,这时需要修改项目属性,将字符集改成多字节字符集:
修改后再重新编译执行:
可见编码已正常输出。其实还可以将鼠标放到其他位置查看打印效果如何,此处就不再尝试了。
到此基本就解决了获取鼠标指向当前应用的问题。此外由于前阵子接触了 jna 包,想着在 java 中试试看能否正常调用获取呢?而且 c 程序中还是存在些问题的,如字符数组 s 定义的长度是 400,理论上会造成一定空间的浪费的,如果利用 java 中的动态可变字符串类型,就可以避免这个问题了。
但是在尝试写 java 代码过程中,jna 包中目前并没有 WindowFromPoint() 方法的定义。不过已经有小伙伴恰好在昨天提出来了,详情可点击链接:https://github.com/java-native-access/jna/issues/1463。其实也是可以自己实现添加的哈,此处就不多做操作啦!
以上,欢迎交流~
winapi获取鼠标指向当前元素相关推荐
- 使用小技巧教你用Selenium获取鼠标指向的元素
有一个同学在Gne的群里面咨询如何通过Selenium获取当前鼠标指向的元素,在我讲了方法以后,他过了两天又来问: 那么,我今天就来写一篇文章,具体说说应该怎么操作. 这个方法的核心,是借助JavaS ...
- js获取鼠标所在html元素的id和属性
js获取鼠标所在html元素的id和属性: Code: <div onclick="Get_srcElement()"> <div id="001&qu ...
- HTML 鼠标坐标和元素坐标
在这一篇文章中,将会介绍鼠标坐标.元素坐标以及鼠标在指定元素内的坐标. 1. 鼠标坐标 在触发鼠标相关事件时(如:click.mousemove),可以通过事件对象获取当前鼠标的坐标. 获取的坐标可分 ...
- Windows核心编程_获取鼠标指定位置的RGB颜色值
Windows核心编程_获取鼠标指定位置的RGB颜色值 大家平常会见到很多屏幕取色工具,其原理都是获取鼠标位置的屏幕像素点颜色! 一般思路都是:获取鼠标位置,然后取出鼠标指向的屏幕像素点颜色! Get ...
- js 获取鼠标在画布的位置_JS获取鼠标位置(鼠标坐标)
在 JavaScript 中,当事件发生时,获取鼠标的位置是件很重要的事件.由于浏览器的不兼容性,不同浏览器分别在各自事件对象中定义了不同的属性,说明如下表所示.这些属性都是以像素值定义了鼠标指针的坐 ...
- jquery 获取鼠标和元素的坐标点
获取当前鼠标相对img元素的坐标 [javascript] view plaincopy $('img').mousemove(function(e) { varpositionX=e.pageX-$ ...
- 解决:当Excel插入图表,鼠标指向时,图一直闪烁,图标元素无法添加
问题:当Excel插入图标,鼠标指向时,图一直闪烁,图标元素无法添加.如下图红框中. 解决方法:Excel加载项中取消"Foxit PDF Creator COM Add-in", ...
- 隔行换色并且鼠标指向行变色的表格
一 应用 对于一些清单型数据,通常是利用表格展示到页面中.如果数据比较多,很容易看串行.这时,可以为表格添加隔行换色并且鼠标指向行变色功能. 二 代码 <script language=&quo ...
- c语言中的字节和元素,C语言指向数组元素的指针
指向数组元素的指针和运算法则 所谓指向数组元素的指针,其本质还是变量的指针.因为数组中的每个元素,其实都可以直接看成是一个变量,所以指向数组元素的指针,也就是变量的指针. 指向数组元素的指针不难,但很 ...
- WPF中获取鼠标相对于屏幕的位置
WPF中获取鼠标相对于屏幕的位置 周银辉 WPF编程时,我们经常使用Mouse.GetPosition(IInputElement ...
最新文章
- 怎么让修改的html持久化_一文让你明白Redis持久化
- javascript使用Json总结
- 创建docker用户组并加入
- 「Python」python调用单个C++文件生成的动态库(.so)Part I
- 温柔得叫人想死:日本电影《火宅之人》手记
- 菜鸟教程 mysql like_MySQL LIKE 子句
- dategridview代码选中行_使用IntelliJ IDEA进行Java代码调试的技巧
- R.I.P. Alan Turing(旧文搬运15.6.6)
- SPSS入门教程—相关性分析使用方法
- Egert实现五点连线(创意参考:网易爱的不同定义)[附源码]
- Mac微信多开以及防撤回方案
- 公钥私钥的使用和数字签名原理
- 服务器虚拟化百科,硬件虚拟化 硬件虚拟化的意思解释|硬件虚拟化是什么意思 -我酷百科...
- 达人篇:5)公差的正态分布与CPK与制程能力(重要)
- 2021年一战南大AI上岸经验贴
- Python 百天读书笔记 | Python语言进阶 16-20day
- UVA	10387	Billiard
- Windows驱动编程基础教程
- 数字图像处理第三章<一>、灰度变换
- Delphi 2005 发布!
热门文章
- autocad 二次开发 拆分图纸_(整理)autocad二次开发块表记录获得和cad层级结构,以及图块保存与打开....
- HBase各版本对Hadoop版本的支持情况
- 2022-2028年中国汽车紧固件行业市场深度分析及投资决策建议报告
- [转]Netlog 的数据库及 LAMP 架构
- ONNX: export failure: Exporting the operator silu to ONNX opset version 12 is not suppo
- realme v11密码解锁_真我V11忘记密码怎么刷机删除跳过激活账号使用
- 如何网页截长图?网页截图其实很简单
- SPSS:主成分分析确定不同指标权重
- linux程序员笔记软件,作为合格的程序员,你得知道这8款工具软件
- LabVIEW开放神经网络交互工具包【ONNX】,大幅降低人工智能开发门槛,实现飞速推理