最近接到这么个需求,要求获取 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获取鼠标指向当前元素相关推荐

  1. 使用小技巧教你用Selenium获取鼠标指向的元素

    有一个同学在Gne的群里面咨询如何通过Selenium获取当前鼠标指向的元素,在我讲了方法以后,他过了两天又来问: 那么,我今天就来写一篇文章,具体说说应该怎么操作. 这个方法的核心,是借助JavaS ...

  2. js获取鼠标所在html元素的id和属性

    js获取鼠标所在html元素的id和属性: Code: <div onclick="Get_srcElement()"> <div id="001&qu ...

  3. HTML 鼠标坐标和元素坐标

    在这一篇文章中,将会介绍鼠标坐标.元素坐标以及鼠标在指定元素内的坐标. 1. 鼠标坐标 在触发鼠标相关事件时(如:click.mousemove),可以通过事件对象获取当前鼠标的坐标. 获取的坐标可分 ...

  4. Windows核心编程_获取鼠标指定位置的RGB颜色值

    Windows核心编程_获取鼠标指定位置的RGB颜色值 大家平常会见到很多屏幕取色工具,其原理都是获取鼠标位置的屏幕像素点颜色! 一般思路都是:获取鼠标位置,然后取出鼠标指向的屏幕像素点颜色! Get ...

  5. js 获取鼠标在画布的位置_JS获取鼠标位置(鼠标坐标)

    在 JavaScript 中,当事件发生时,获取鼠标的位置是件很重要的事件.由于浏览器的不兼容性,不同浏览器分别在各自事件对象中定义了不同的属性,说明如下表所示.这些属性都是以像素值定义了鼠标指针的坐 ...

  6. jquery 获取鼠标和元素的坐标点

    获取当前鼠标相对img元素的坐标 [javascript] view plaincopy $('img').mousemove(function(e) { varpositionX=e.pageX-$ ...

  7. 解决:当Excel插入图表,鼠标指向时,图一直闪烁,图标元素无法添加

    问题:当Excel插入图标,鼠标指向时,图一直闪烁,图标元素无法添加.如下图红框中. 解决方法:Excel加载项中取消"Foxit PDF Creator COM Add-in", ...

  8. 隔行换色并且鼠标指向行变色的表格

    一 应用 对于一些清单型数据,通常是利用表格展示到页面中.如果数据比较多,很容易看串行.这时,可以为表格添加隔行换色并且鼠标指向行变色功能. 二 代码 <script language=&quo ...

  9. c语言中的字节和元素,C语言指向数组元素的指针

    指向数组元素的指针和运算法则 所谓指向数组元素的指针,其本质还是变量的指针.因为数组中的每个元素,其实都可以直接看成是一个变量,所以指向数组元素的指针,也就是变量的指针. 指向数组元素的指针不难,但很 ...

  10. WPF中获取鼠标相对于屏幕的位置

    WPF中获取鼠标相对于屏幕的位置                                   周银辉 WPF编程时,我们经常使用Mouse.GetPosition(IInputElement ...

最新文章

  1. 怎么让修改的html持久化_一文让你明白Redis持久化
  2. javascript使用Json总结
  3. 创建docker用户组并加入
  4. 「Python」python调用单个C++文件生成的动态库(.so)Part I
  5. 温柔得叫人想死:日本电影《火宅之人》手记
  6. 菜鸟教程 mysql like_MySQL LIKE 子句
  7. dategridview代码选中行_使用IntelliJ IDEA进行Java代码调试的技巧
  8. R.I.P. Alan Turing(旧文搬运15.6.6)
  9. SPSS入门教程—相关性分析使用方法
  10. Egert实现五点连线(创意参考:网易爱的不同定义)[附源码]
  11. Mac微信多开以及防撤回方案
  12. 公钥私钥的使用和数字签名原理
  13. 服务器虚拟化百科,硬件虚拟化 硬件虚拟化的意思解释|硬件虚拟化是什么意思 -我酷百科...
  14. 达人篇:5)公差的正态分布与CPK与制程能力(重要)
  15. 2021年一战南大AI上岸经验贴
  16. Python 百天读书笔记 | Python语言进阶 16-20day
  17. UVA 10387 Billiard
  18. Windows驱动编程基础教程
  19. 数字图像处理第三章<一>、灰度变换
  20. Delphi 2005 发布!

热门文章

  1. autocad 二次开发 拆分图纸_(整理)autocad二次开发块表记录获得和cad层级结构,以及图块保存与打开....
  2. HBase各版本对Hadoop版本的支持情况
  3. 2022-2028年中国汽车紧固件行业市场深度分析及投资决策建议报告
  4. [转]Netlog 的数据库及 LAMP 架构
  5. ONNX: export failure: Exporting the operator silu to ONNX opset version 12 is not suppo
  6. realme v11密码解锁_真我V11忘记密码怎么刷机删除跳过激活账号使用
  7. 如何网页截长图?网页截图其实很简单
  8. SPSS:主成分分析确定不同指标权重
  9. linux程序员笔记软件,作为合格的程序员,你得知道这8款工具软件
  10. LabVIEW开放神经网络交互工具包【ONNX】,大幅降低人工智能开发门槛,实现飞速推理