使用mouse_event来模拟一次选中文本框中的文本

来源:互联网 发布:淘宝代运营是什么 编辑:程序博客网 时间:2024/05/22 12:57

使用mouse_event可以模拟一些通过鼠标执行的事情,下面我们就来模拟一次鼠标在EDIT中选择一段文本的过程。

首先我们来分解一下选中文本的鼠标动作,其包括基本方面:

  1. 将鼠标移动到指定的位置,文本的开始处
  2. 按下鼠标(WM_LBUTTONDOWN)
  3. 在按下鼠标的同时移动鼠标到指定的位置
  4. 松开鼠标左键(WM_LBUTTONUP)

知道了这个过程我们就来通过程序来模拟吧。我自己实验的时候建立了DIALOG工程,在DIALOG上放了一个BUTTON,一个EDIT,将程序写到BUTTON事件中,程序如下:

void CTestChkDlg: nBnClickedButton1()
{
 RECT rect;
 GetDlgItem(IDC_EDIT)->GetWindowRect(&rect);
 SetCursorPos(rect.left+5,rect.top+5);
 mouse_event(MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_LEFTDOWN,rect.left+1,rect.top+1,0,0);
 SetCursorPos(rect.left+60,rect.top+10);
 //mouse_event(MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_MOVE,500,600,0,0);
 mouse_event(MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_LEFTUP,rect.left+60,rect.top+5,0,0);

}

首先我们需要做的是取得EDIT的位置,然后将鼠标移动到那里(SetCursorPos),这里加5是让鼠标在EDIT里面,因为EDIT有边,如果按照RECT的值来可能选择不了;然后使用MOUSEEVENTF_LEFTDOWN来按下鼠标,在按下鼠标的时候再将鼠标移动到文本的指定位置,然后松开鼠标。

好了文本选中了。

既然可以通过程序来模拟真正的鼠标动作,那么我们就可以写一些自动安装程序就不是什么难事情了。记得以前我们公司采用LOTUS软件来拷勤,需要在上面刷卡,哈哈,既然鼠标能模拟,这种方法可以写个程序来帮你刷卡,你永远不会迟到。当然,如果你真的这么做,后果自负。

 
原创粉丝点击