C/C++ Windows.h 鼠标键盘操作

这篇具有很好参考价值的文章主要介绍了C/C++ Windows.h 鼠标键盘操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

现在有些情况下我们需要用鼠标或键盘重复做某些操作,一次两次还好,当我们需要重复做100次或远程控制时,我们就需要用到鼠标键盘操作。这时,我们就要用Windows.h来实现了。

目录

相关函数

mouse_event

keybd_event

SetCursorPos

示例:

实现Ctrl + V 

实现随机设置鼠标位置


相关函数:

首先,让我们来学习几个相关的函数:

mouse_event

这个函数是用来模拟鼠标事件的,函数原型如下:

VOID mouse_event(DWORD dwFlags, DWORD dx,DWORD dwFlags, OWORD dx, DWORD dy, DWORD dwData, DWORD dwExtralnfo);

 参数:


    dwFlags:标志位集,指定点击按钮和鼠标动作的多种情况。此参数里的各位可以是下列值的任何合理组合:

            MOOSE_EVENTF_ABSOLOTE:表明参数dX,dy含有规范化的绝对坐标。如果不设置此位,参数含有相对数据:相对于上次位置的改动位置。此标志可被设置,也可不设置,不管鼠标的类型或与系统相连的类似于鼠标的设备的类型如何

            MOOSEEVENTF_MOVE:表明发生移动。

            MOUSEEVENTF_LEFTDOWN:表明接按下鼠标左键。

            MOUSEEVENTF_LEFTUP:表明松开鼠标左键。

            MOUSEEVENTF_RIGHTDOWN:表明按下鼠标右键。

            MOUSEEVENTF_RIGHTUP:表明松开鼠标右键。

            MOUSEEVENTF_MIDDLEDOWN:表明按下鼠标中键。

            MOUSEEVENTF_MIDDLEUP:表明松开鼠标中键。

            MOUSEEVENTF_WHEEL:在Windows NT中如果鼠标有一个轮,表明鼠标轮被移动。移动的数量由dwData给出。

    dx:指定鼠标沿x轴的绝对位置或者从上次鼠标事件产生以来移动的数量,依赖于MOOSEEVENTF_ABSOLOTE的设置。给出的绝对数据作为鼠标的实际X坐标;给出的相对数据作为移动的mickeys数。一个mickey表示鼠标移动的数量,表明鼠标已经移动。

    dy:指定鼠标沿y轴的绝对位置或者从上次鼠标事件产生以来移动的数量,依赖于MOOSEEVENTF_ABSOLVTE的设置。给出的绝对数据作为鼠标的实际y坐标,给出的相对数据作为移动的mickeys数。

    dwData:如果dwFlags为MOOSEEVENTF_WHEEL,则dwData指定鼠标轮移动的数量。正值表明鼠标轮向前转动,即远离用户的方向;负值表明鼠标轮向后转动,即朝向用户。一个轮击定义为WHEEL_DELTA,即120。

    如果dwFlagsS不是MOOSEEVENTF_WHEEL,则dWData应为零。

    dwExtralnfo:指定与鼠标事件相关的附加32位值。应用程序调用函数GetMessgeExtrajnfo来获得此附加信息。

    返回值:无。

keybd_event

这个函数是用来模拟键盘事件的,函数原型如下:

VOID keybd_event(BYTE bVk,BYTE bScan,DWORD dwFlags,DWORD dwExtralnfo);

参数:

     bVk:定义一个虚据拟键码。键码值必须在1~254之间,宏定义为 "VK_" 开头。

     bScan : 定义该键的硬件扫描码,一般填 0 。

     dwFlags:定义函数操作的名个方面的一个标志位集。应用程序可使用如下一些预定义常数的组合设置标志位,常用按下为 0 ,弹起为 2 。

        KEYEVENTF_EXETENDEDKEY:若指定该值,则扫描码前一个值为OXEO(224)的前缀字节。

        DEYEVENTF_KEYUP:若指定该值,该键将被释放;若未指定该值,该键交被接下。dwExtralnfo:定义与击键相关的附加的32位值,常填 0 。
 

      返回值:无。

SetCursorPos

这个函数是用来设置鼠标位置的,函数原型如下:

BOOL SetCursorPos(int X,int Y);

参数:

    X:指定光标的新的X坐标,以屏幕坐标表示。

    Y:指定光标的新的Y坐标,以屏幕坐标表示。

    返回值:如果成功,返回非零值;如果失败,返回值是零。

示例:

好了,接下来我给大家写一些示例吧。

实现Ctrl + V :

#include <Windows.h>

int main()
{
    //按下Ctrl键
    keybd_event(VK_CONTROL, 0, 0, 0);
    //按下V键(注意,当第一个参数为字符时必须用单引号" ' "引起来)
    keybd_event('V', 0, 0, 0);
    //松开V键
    keybd_event('V', 0, 2, 0);
    //松开Ctrl键
    keybd_event(VK_CONTROL, 0, 2, 0);

    return 0;
}

实现随机设置鼠标位置:

#include <Windows.h>
#include <stdlib.h>
#include <time.h>

int main()
{
   	int xWidth = GetSystemMetrics(SM_CXSCREEN);	//获取屏幕边界x
	int yHeight = GetSystemMetrics(SM_CYSCREEN);	//获取屏幕边界y
    // 设置随机数种子
    srand((unsigned)time(NULL));
    // 随机生成X坐标
    int x = rand() % xWidth;
    // 随机生成Y坐标
    int y = rand() % yHeight;
    // 设置鼠标位置
    SetCursorPos(x, y);
    return 0;
}

好了今天就给大家讲到这里,谢谢大家,有问题欢迎在评论区讨论。文章来源地址https://www.toymoban.com/news/detail-484531.html

到了这里,关于C/C++ Windows.h 鼠标键盘操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C# Windows登录界面进行截图,控制鼠标键盘等操作实现(三)

    在Windows登录界面进行截图,目前尝试到的以下的截图方法可以截取到图,其它的方式要么卡住,要么截出来是黑屏的,直接上代码: 操作鼠标键盘等操作可以参考本人另一篇文章:使用C#制作可以录制自动化执行Windows操作脚本工具——类似于按键精灵 - log9527 - 博客园 (cnbl

    2024年02月12日
    浏览(27)
  • 模拟鼠标键盘操作PyUserInput

    模拟鼠标操作是模拟鼠标点击和键盘输入的操作,UI自动化测试中非常实用。在Web UI、App UI、WinApp UI自动化测试讲解中借助Selenium和Appium框架下ActionChains、TouchAction、MouseButton等类已经介绍了如何模拟鼠标和键盘操作。本文将为大家介绍一个独立的、任何时候都可以模拟鼠标和

    2024年02月08日
    浏览(30)
  • python模拟鼠标键盘操作

    优点:可以进行简单的重复人为操作,也相当于实现了傻瓜式的自动化 缺点:也很明显,在进行程序运行时,你不能对鼠标和键盘进行使用(不然就会改变鼠标位置和输入内容导致程序报错),所以最好使用一台空闲的电脑。 很多软件打开都需要自己的运行环境,所以需要

    2024年02月11日
    浏览(29)
  • UG鼠标和键盘操作

    角色包含了用户的自定义配置,包括内容、演示、快捷键、工具栏等,通过: 菜单-首选项-用户界面-角色 进行导入导出。 将鼠标放在欲选择的对象上悬停,当出现三个点时点击左键,选择不同类别 拨动滚轮 Crrl+按下鼠标中键移动鼠标(比较顺滑) 在屏幕中央:按下鼠标中

    2024年02月12日
    浏览(41)
  • 使用Windows API实现键盘鼠标监控钩子

    本文介绍了如何使用Windows API中的SetWindowsHookEx和RegisterHotKey函数来监控键盘和鼠标活动。特别地,我们将详细讨论RegisterHotKey函数的用法,该函数允许开发者注册全局热键并定义这些热键触发时的行为。

    2024年02月04日
    浏览(36)
  • Selenium 模拟键盘及鼠标操作

    在第三章中我们已经初步掌握了 Selenium 中的元素操作,包括了 click() 点击操作、clear() 清除操作以及 sendKeys() 输入操作,但是这三种操作还不能够满足测试用例中的操作;以点击来说,使用鼠标可以实现点击、双击等,而使用键盘也可以输入除了字符串之外的如 CTRL、ENTER、

    2024年04月15日
    浏览(25)
  • selenium模拟网页的键盘鼠标操作

    Selenium可以模拟键盘和鼠标操作,下面是一些常用的方法:   1. 模拟键盘输入   ```python from selenium.webdriver.common.keys import Keys   # 找到输入框 input_box = driver.find_element_by_xpath(\\\"//input[@name=\\\'q\\\']\\\")   # 在输入框输入文字 input_box.send_keys(\\\"Python\\\")   # 模拟回车键 input_box.send_keys(Keys.ENTER)

    2024年02月13日
    浏览(43)
  • WindowsAPI——使用Windows API中键盘、鼠标监控钩子

    本节将介绍如何使用 Windows API 中的 SetWindowsHookEx 和 RegisterHotKey 函数来实现键盘鼠标的监控。这些函数可以用来设置全局钩子,通过对特定热键挂钩实现监控的效果,两者的区别在于 SetWindowsHookEx 函数可以对所有线程进行监控,包括其他进程中的线程,而 RegisterHotKey 函数只能

    2024年02月04日
    浏览(34)
  • 在windows和ubuntu之间共享鼠标键盘,无缝切换

    安装和使用Barrier在Linux和其他设备之间共享键盘和鼠标 Barrier是一个开源软件,能够在多台计算机之间共享鼠标和键盘,如果你同时使用window和linux系统,那就可以安装和使用Barrier。 开源地址:https://github.com/debauchee/barrier ubuntu下安装: 运行以下命令安装 或者在软件商店中进

    2024年02月04日
    浏览(30)
  • selenium自动化测试-鼠标键盘操作

    前面我们已经学完了8种定位方式和利用Firefox插件协助定位,学会了定位了,自动化就成功了一半。 但是我们好像只是定位,定位后的操作并不多,我们今天要系统的了解下鼠标键盘操作。 回顾下我们之前的简单操作: 1.click() 点击按钮 2.clear() 清除输入框 3.send_keys() 输入字

    2024年02月07日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包