MFC之实现鼠标自动左击,频率可调,支持热键
生活随笔
收集整理的這篇文章主要介紹了
MFC之实现鼠标自动左击,频率可调,支持热键
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
MFC之實(shí)現(xiàn)鼠標(biāo)自動(dòng)左擊,頻率可調(diào),支持熱鍵
Dialog拖幾個(gè)控件,名字如上.
通過類的向?qū)ЫoDialog添加消息事件
在AutoClickDlg.h頭文件加入關(guān)鍵性代碼;
在AutoClickDlg.cpp 文件中,添加關(guān)鍵性代碼,由于系統(tǒng)默認(rèn)生成的代碼較多,我這里就不一一復(fù)制了,選擇關(guān)鍵性的貼上.
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()函數(shù)中 初始化的函數(shù)中
// TODO: 在此添加額外的初始化代碼CString str3;str3.Format(L"%d", 200);m_edittime.SetWindowTextW(str3);return TRUE; // 除非將焦點(diǎn)設(shè)置到控件,否則返回 TRUEOnCreate 函數(shù)
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() 函數(shù)中
void CAutoClickDlg::OnTimer(UINT_PTR nIDEvent) {if (nIDEvent == 2){CPoint pt;GetCursorPos(&pt);CString str2;str2.Format(_T("全屏坐標(biāo): x=%d,y=%d"), pt.x, pt.y);GetDlgItem(IDC_STATIC)->SetWindowTextW(str2);}if (nIDEvent==1) {CString str;CPoint pt;GetCursorPos(&pt);//獲取鼠標(biāo)在屏幕的當(dāng)前位置//SetCursorPos(500, 500);//移動(dòng)到某點(diǎn)坐標(biāo)mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);//點(diǎn)下左鍵mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);//松開左鍵//mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);//點(diǎn)下右鍵//mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);//松開右鍵}CDialogEx::OnTimer(nIDEvent); }OnBnClickedButton1() 按鈕1 的函數(shù) 以及其他函數(shù)
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();//使得被激活窗口出現(xiàn)在前景OnBnClickedButton1();}if (wParam == 1003 || wParam == 1004){CWnd::SetForegroundWindow();//使得被激活窗口出現(xiàn)在前景OnBnClickedButton2();}return 0; } void CAutoClickDlg::OnMouseMove(UINT nFlags, CPoint point) {CDialogEx::OnMouseMove(nFlags, point); }總結(jié)
以上是生活随笔為你收集整理的MFC之实现鼠标自动左击,频率可调,支持热键的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt之画刻度尺入门
- 下一篇: C++爬虫项目爬取图片