winapi模拟鼠标按住左键拖动

        继前文《windows下通过uiAutomation技术获取ui元素》介绍获取ui元素信息后,还需要对信息进行修改,但是 uiAutomation 技术并未提供可修改的 api,只能另辟他径看看了。

        以 camera raw 为例,已知的是可将鼠标放在指定区域位置,然后按下左键并左右拖动,也是可以改变对应值的,界面如下:

        而鼠标的操作实际上也是通过 winapi 来向 windows 发送消息的,按照这个思路,可以直接调用 winapi 试试看。这里主要用到的也就是 mouse_event() 方法:

/// <summary>
/// Mouse click event
/// </summary>
/// <param name="mouseEventFlag">MouseEventFlag </param>
/// <param name="incrementX">X coordinate</param>
/// <param name="incrementY">Y coordinate</param>
/// <param name="data"></param>
/// <param name="extraInfo"></param>
[DllImport("user32.dll")]
extern static void mouse_event(int mouseEventFlag, int incrementX, int incrementY, uint data, UIntPtr extraInfo);

        操作譬如按下左键、按下右键、移动等取决于第一个参数 mouseEventFlag

const int MOUSEEVENTF_MOVE = 0x0001;
const int MOUSEEVENTF_LEFTDOWN = 0x0002;
const int MOUSEEVENTF_LEFTUP = 0x0004;
const int MOUSEEVENTF_RIGHTDOWN = 0x0008;
const int MOUSEEVENTF_RIGHTUP = 0x0010;
const int MOUSEEVENTF_MIDDLEDOWN = 0x0020;
const int MOUSEEVENTF_MIDDLEUP = 0x0040;
const int MOUSEEVENTF_ABSOLUTE = 0x8000;

        这样只需确定好坐标位置,就可以调用 mouse_event() 方法进行相关操作了。这里以按住左键拖动为例:

static void Main(string[] args)
{int x = 1353, y = 740;    // camera raw调色板坐标Thread.Sleep(2000);SetCursorPos(x, y);mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, UIntPtr.Zero);Thread.Sleep(500);mouse_event(MOUSEEVENTF_MOVE, 5, 0, 0, UIntPtr.Zero);mouse_event(MOUSEEVENTF_MOVE, 5, 0, 0, UIntPtr.Zero);mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, UIntPtr.Zero);
}

        这里由于是本地环境调试,程序编译运行也需要一些时间,故中间 sleep 2秒,若程序处于正常运行中理论上应该是不需要的。确定坐标后先通过 setCursorPos() 方法定位鼠标位置,之后依次调用 mouse_event() 方法就好啦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/62550.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c#控制windows 鼠标移动、点击和输入

c#控制windows 鼠标移动、点击和输入 首先可以使用ViewWizard获取窗口的类名和TitleMouseHookHelper 鼠标相关的函数主函数调用MouseHookHelper实现鼠标点击和字符输入可能遇到的问题 首先可以使用ViewWizard获取窗口的类名和Title ViewWizard下载地址&#xff1a;https://dow…

手势控制鼠标进行操作的方法和源码

网上有不少用手势控制鼠标移动进行简单操作的视频 于是我也做了一个 实现方法简述&#xff1a; 1、肤色检测找到手势区域&#xff0c;&#xff08;加上kalman滤波等会提高准确度&#xff0c;但也会影响实时性&#xff09;&#xff0c; 2、判断手势&#xff0c;只有两种&…

手势识别控制鼠标和键盘

项目已经及上传github&#xff0c;需者自取。 https://github.com/grey-wood-wolf/Gesture-recognition-mouse-and-keyboard-control 完成人&#xff1a;李政廉 黄鑫杰 傅英伦 实现功能 实现左右手的手势识别&#xff0c;并非触摸控制鼠标的移动和点击&#xff0c;以及键盘上下…

【Parsec】远程控制鼠标消失不可见的解决方法

转载连接&#xff1a;https://www.cnblogs.com/cowmax/p/13577769.html 一、问题描述 通过在云端的主机上部署 frp 服务&#xff0c;实现「使用Windows 远程桌面&#xff08;RDP&#xff09;从互联网侧访问内网的主机」。但是&#xff0c;使用 Windows 自带的远程桌面工具 RD…

员工离职倾向尽在公司掌握,争议发生后,监控系统研发商悄悄下架相关服务

你上班时会使用公司WiFi还是自己的流量呢&#xff1f;如果你平时经常用公司的网络摸鱼&#xff0c;那你现在可要注意了&#xff0c;因为你的上网记录很有可能都被监控下来了。 事情经过 上周&#xff0c;有一个网友发帖称自己开工第一天就被裁&#xff0c;原因竟是领导知道了…

2017 年 IT 界最严重的裁员事件汇总

程序猿&#xff08;微信号&#xff1a;imkuqin&#xff09; 猿妹 整编 裁员年年都有&#xff0c;今年特别多从微软、Oracle、IBM&#xff0c;到思科、HPE&#xff0c;再到雅虎、stackoverflow&#xff0c;无论是处于转型变革中的老牌巨头&#xff0c;还是日渐成熟的创新型公司&…

这可能是2018年IT界规模最大的裁员事件了

作者&#xff1a;焱公子&#xff0c;发型光芒万丈的跨界理工男。多年500强&#xff0c;专注写职场。解薄情人世&#xff0c;书深情故事。 来自&#xff1a;焱公子&#xff08;ID&#xff1a;Yangongzi2015&#xff09; 这可能是2018年IT界规模最大的裁员事件了。近日&#xff0…

阿里最新发布2023版Java八股文PDF版,是真的很强

大家好&#xff0c;今天给大家分享一套 阿里10w字 Java 面试手册。266页&#xff0c;涵盖基础篇、JVM篇、多线程并发篇、Spring篇、MyBatis篇、SpringBoot篇、MySQL篇、SpringCloud篇、Dubbo篇、Nginx篇、MQ篇、数据结构与算法篇、Linux篇、Zookeeper篇、Redis篇、分布式篇、网…

阿里原来这么容易就能进去…

最近和阿里的一个老朋友闲聊&#xff0c;感触颇深&#xff0c;据他说公司近期招聘的测试工程师&#xff0c;大多数候选人都有一个“通病”&#xff1a;在工作2-3年的时候遇到瓶颈&#xff0c;而且是一道很难跨越的坎。 为什么会遇到这种情况&#xff1f;因为大部分测试工程师在…

二战阿里巴巴成功上岸,准备了小半年,要个28k应该也算不上很高吧~

先说下我基本情况&#xff0c;本科不是计算机专业&#xff0c;现在是学通信&#xff0c;然后做图像处理&#xff0c;可能面试官看我不是科班出身没有问太多计算机相关的问题&#xff0c;因为第一次找工作&#xff0c;阿里的游戏专场又是最早开始的&#xff0c;就投递了&#xf…

阿里巴巴原来这么容易就能进去…

最近和阿里的一个老朋友闲聊&#xff0c;感触颇深&#xff0c;据他说公司近期招聘的测试工程师&#xff0c;大多数候选人都有一个“通病”&#xff1a;在工作2-3年的时候遇到瓶颈&#xff0c;而且是一道很难跨越的坎。 为什么会遇到这种情况&#xff1f;因为大部分测试工程师在…

这是一篇能够教会你运营阿里巴巴国际站的文章

对于很多跨境人来说&#xff0c;运营真的是一个让人头疼的大事情。不知道要从哪个方面下手&#xff0c;不知道要往哪方面努力等等问题都是很常见的&#xff0c;所以今天龙哥就解剖一下阿里巴巴国际站的运营方法&#xff0c;简单地给大家讲一下要掌握哪些方面的知识。运营这条路…

威洛特:狗狗骨折如何应急的去处理?

狗狗这种喜欢活蹦乱跳的动物&#xff0c;真的一不小心可能就把自己骨头折了。骨折会影响狗狗的身体健康和正常生活&#xff0c;必须及时治疗。接下来威洛特就给大家分享一些狗狗骨折的相关注意事项。 一、狗狗骨折的应急处理 当狗狗骨折的时候&#xff0c;它的骨头很可能错位了…

安全狗的绕过

环境&#xff1a; phpstudy2018 安全狗apache版 sqllabs靶场 安全狗绕过思路&#xff1a; 安全狗是基于正则匹配的绕过&#xff0c;所以总是能够绕过其正则匹配实现sql的命令执行&#xff0c;需要对数据库语句灵活掌握。经过对安全狗的fuzz&#xff0c;测试其拦截规则&#xff…

Android Watchdog 狗子到底做了啥

作者&#xff1a;流浪汉kylin 原文链接&#xff1a;https://juejin.cn/post/7215498393429983291 前言 有一定开发经验的或多或少有听过Watchdog&#xff0c;那什么是Watchdog呢&#xff1f;Watchdog又称看门狗&#xff0c;看门狗是育碧开发的一款游戏&#xff0c;目前已出到《…

python程序编程代码大全,python编程代码详解

大家好&#xff0c;本文将围绕python程序编程代码大全展开说明&#xff0c;python编程游戏代码是一个很多人都想弄明白的事情&#xff0c;想搞清楚python代码大全简单需要先了解以下几个事情。 1、python编程例子有哪些&#xff1f; python编程经典例子&#xff1a; 1、画爱心…

宝峰数科带你读懂数字家庭的真正内涵

由建标〔2021〕28号文《关于加快发展数字家庭提高居住品质的指导意见》开启的数字家庭国家建设已有一年多&#xff0c;但仍有不少人不能清晰理解数字家庭与早已存在的智能家居、智慧家庭、全屋智能等传统智能之间的区别&#xff0c;业内对数字家庭的认识还不够深入、有待提高。…

易观数科代码埋点、全埋点、可视化埋点

讲埋点的文章那么多&#xff0c;我们为什么还要写它&#xff1f;首先&#xff0c;这不是一篇纯技术文章&#xff0c;而是从一个非技术人员的角度&#xff0c;希望通过浅显的语言描述&#xff0c;让运营同学能快速了解概念。 此外&#xff0c;目前市面的埋点文章&#xff0c;要…

京东数科(实习一面)

数据库之范式数据库之索引线程间通信反射什么是字节码&#xff1f;采用字节码的最大好处是什么&#xff1f;Java如何实现一次编译到处运行的。 数据库之范式 目前关系型数据库一共有 6 种范式&#xff0c;按照范式级别&#xff0c;从低到高分别是&#xff1a;1NF&#xff08;第…

360数科发布2020全年财报:全年收入上涨47.1%,科技为运营效率提供第一动力

3月16日&#xff0c;360数科发布2020年第4季度及全年未经审计的财务报告。2020财年&#xff0c;360数科实现收入135.64亿元&#xff0c;较2019年92.2亿元增长47.1%&#xff1b;非美国会计准则&#xff08;Non-GAAP&#xff09;下净利润为37.97亿元&#xff0c;较2019年27.52亿元…