MFC之实现鼠标自动左击,频率可调,支持热键



Dialog拖几个控件,名字如上.
通过类的向导给Dialog添加消息事件

在AutoClickDlg.h头文件加入关键性代码;


// AutoClickDlg.h: 头文件
//#pragma once// CAutoClickDlg 对话框
class CAutoClickDlg : public CDialogEx
{// 构造
public:CAutoClickDlg(CWnd* pParent = nullptr); // 标准构造函数// 对话框数据
#ifdef AFX_DESIGN_TIMEenum { IDD = IDD_AUTOCLICK_DIALOG };
#endifprotected:virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持// 实现
protected:HICON m_hIcon;// 生成的消息映射函数virtual BOOL OnInitDialog();afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP()afx_msg LRESULT OnHotKey(WPARAM wParam, LPARAM lParam);
public:afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);afx_msg void OnTimer(UINT_PTR nIDEvent);afx_msg void OnBnClickedButton1();afx_msg void OnBnClickedButton2();CEdit m_edittime;afx_msg void OnDestroy();afx_msg void OnMouseMove(UINT nFlags, CPoint point);
};

在AutoClickDlg.cpp 文件中,添加关键性代码,由于系统默认生成的代码较多,我这里就不一一复制了,选择关键性的贴上.

BEGIN_MESSAGE_MAP(CAutoClickDlg, CDialogEx)ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_WM_CREATE()ON_WM_TIMER()ON_BN_CLICKED(IDC_BUTTON1, &CAutoClickDlg::OnBnClickedButton1)ON_BN_CLICKED(IDC_BUTTON2, &CAutoClickDlg::OnBnClickedButton2)ON_MESSAGE(WM_HOTKEY, OnHotKey)ON_WM_DESTROY()ON_WM_MOUSEMOVE()
END_MESSAGE_MAP()

OnInitDialog()函数中 初始化的函数中

 // TODO: 在此添加额外的初始化代码CString str3;str3.Format(L"%d", 200);m_edittime.SetWindowTextW(str3);return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE

OnCreate 函数


int CAutoClickDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{if (CDialogEx::OnCreate(lpCreateStruct) == -1)return -1;RegisterHotKey(m_hWnd, 1001, MOD_CONTROL,'Z');RegisterHotKey(m_hWnd, 1002, MOD_CONTROL, 'z');RegisterHotKey(m_hWnd, 1003, MOD_CONTROL, 'X');RegisterHotKey(m_hWnd, 1004, MOD_CONTROL, 'x');SetTimer(2, 5000, NULL);return 0;
}

OnTimer() 函数中

void CAutoClickDlg::OnTimer(UINT_PTR nIDEvent)
{if (nIDEvent == 2){CPoint pt;GetCursorPos(&pt);CString str2;str2.Format(_T("全屏坐标: x=%d,y=%d"), pt.x, pt.y);GetDlgItem(IDC_STATIC)->SetWindowTextW(str2);}if (nIDEvent==1) {CString str;CPoint pt;GetCursorPos(&pt);//获取鼠标在屏幕的当前位置//SetCursorPos(500, 500);//移动到某点坐标mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);//点下左键mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);//松开左键//mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);//点下右键//mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);//松开右键}CDialogEx::OnTimer(nIDEvent);
}

OnBnClickedButton1() 按钮1 的函数 以及其他函数

void CAutoClickDlg::OnBnClickedButton1()
{CString times;m_edittime.GetWindowTextW(times);SetTimer(1, _ttoi(times), NULL);m_edittime.EnableWindow(FALSE);
}
void CAutoClickDlg::OnBnClickedButton2()
{KillTimer(1);m_edittime.EnableWindow(TRUE);
}
void CAutoClickDlg::OnDestroy()
{CDialogEx::OnDestroy();UnregisterHotKey(m_hWnd, 1001);UnregisterHotKey(m_hWnd, 1002);
}
LRESULT CAutoClickDlg::OnHotKey(WPARAM wParam, LPARAM lParam)
{if (wParam == 1001 || wParam == 1002){CWnd::SetForegroundWindow();//使得被激活窗口出现在前景OnBnClickedButton1();}if (wParam == 1003 || wParam == 1004){CWnd::SetForegroundWindow();//使得被激活窗口出现在前景OnBnClickedButton2();}return 0;
}
void CAutoClickDlg::OnMouseMove(UINT nFlags, CPoint point)
{CDialogEx::OnMouseMove(nFlags, point);
}

MFC之实现鼠标自动左击,频率可调,支持热键相关推荐

  1. WPF窗口长时间无人操作鼠标自动隐藏

    原文:WPF窗口长时间无人操作鼠标自动隐藏 在软件开发中有时会有等待一段时间无人操作后隐藏鼠标,可能原因大致如下: 1.为了安全性,特别是那些需要用到用户名和密码登录服务端的程序,常常考虑长期无人操作 ...

  2. Logitech G系鼠标脚本编程,实现鼠标自动定位控制

    利用罗技官方提供的API来写一个鼠标自动定位移动脚本 点击脚本编辑器中的帮助选项,查看罗技官方提供的API说明,有很多实现好的鼠标功能 G-series Lua API V8.45 Overview ...

  3. python 鼠标 自动点击_鼠标隔段时间自动点击屏幕

    知识点:Python库及简单定时器的使用 1. 鼠标自动点击屏幕代码 (1). 首先 pip install pymouse (2). 运行代码出现:ModuleNotFoundError: No m ...

  4. Delphi下实现鼠标自动点击器

    本文最早在编程论坛上发表,文章地址:http://programbbs.com/bbs/view12-20849-1.htm,相关文件可以在上述地址的页面中下载.转载时请注明出处. 众所周知,当鼠标指 ...

  5. 实用分享-鼠标自动点击助手

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处    鼠标自动点击助手 工具下载路径: 鼠标轨迹助手-可自定义点击轨迹-其它文档类资源-CSDN ...

  6. python自动点击脚本_用Python实现鼠标自动点击

    前言: 最近玩某页游时遇到一个重复任务,需要不停的接/交任务道具,数量巨大又十分麻烦,想去网上下脚本又找不到合适的,于是整了一个可以实现鼠标自动点击的小玩意.因为我之前没有任何编程基础,这两天自学又走 ...

  7. 鼠标连点器,怎么玩转鼠标自动点击?

    鼠标连点器是一款非常便捷的工具,可以帮助我们自动进行鼠标点击操作.这种工具尤其适用于一些需要反复点击同一个位置的软件或游戏,在这些情况下手动点击会非常费时费力,而鼠标连点器就能够为我们节省很多宝贵的时 ...

  8. ThinkPad win7 鼠标自动点击错误

    重新安装的32bit T420 WIN7在使用了一下午的触摸板后出现鼠标自动点击的现象,更新驱动,也不能修正,后来安装了<联想服务>,该问题消失了一段时间,但是这周又来了,怎么修正都没有效 ...

  9. 限制鼠标点击频率(QT)

    1 背景 有些场景并不需要按钮点击频率过快(eg:高德地图上的放大缩小按钮.需要加载资源的按钮),所以为了预防可爱的测试人员和客户乱来,需要限制鼠标事件触发频率,避免不必要的争论. 2 效果演示 3 ...

最新文章

  1. android 创建隐藏文件夹吗,Android创建隐藏文件可能文件夹
  2. 字符串数字转换成对应的Double数值
  3. C# WMI 编程实例2则
  4. 【Socket网络编程】11.网络编程中的 数据封装 和 数据拆封
  5. STM32开发 -- 4G模块开发详解(1)
  6. 数据挖掘之数据预处理
  7. 可能是全网最好的MySQL重要知识点/面试题总结
  8. php7 验证url格式,url的组成格式为
  9. 【GCC调试程序C语言问题】对‘ceil’未定义的引用/已经包含头文件仍然提示未定义的引用
  10. python简明教程_01
  11. 三维点云数据处理软件供技术原理说明_三维扫描数据处理技术_点云数据处理...
  12. 计算机工业机器人编程,15个你不知道的工业机器人编程冷知识
  13. java程序一图片为背景_利用Java处理图片,更换背景
  14. 权限管理系统项目文档——Vue前端
  15. 最好用的文字锁屏APP的使用教程
  16. c#语言中怎么实现延时功能,timer-在C#中创建“一次运行”延时功能的最佳方法...
  17. 【专利练习4】深度学习模型用于专利分类
  18. 智慧城市照明系统方案
  19. 详解HHTPS-图解HTTP
  20. ITK开发入门hello,world

热门文章

  1. html input 字体颜色_input使用小技巧
  2. oracle12g安装手册,oracle 12c 安装 手册
  3. java自带的xml解析,使用Java自带SAX工具解析XML
  4. sql开启mysql远程连接_CentOS系统中安装MySQL和开启MySQL远程访问的方法
  5. python求素数之和_python如何求质数之和
  6. linux mysql5.1 安装_linux编译安装mysql5.1.x
  7. esxi 部署模板_vSphere使用模板部署虚拟机
  8. 民用建筑工程给水排水设计深度图样_河南省怎样办理市政设计给水排水工程设计乙级资质...
  9. iphone开机白苹果_摔过的iPhone,手机不开机、白苹果、听筒无声,多重问题一次搞定...
  10. android 置顶窗口位置,Android 滑动悬浮置顶指南