`
huozheleisi
  • 浏览: 1235875 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

使用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软件来拷勤,需要在上面刷卡,哈哈,既然鼠标能模拟,这种方法可以写个程序来帮你刷卡,你永远不会迟到。当然,如果你真的这么做,后果自负。

http://blog.csdn.net/windcsn/archive/2005/08/22/461211.aspx

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics