vc6.0编程如何在程序内模拟鼠标键盘操作?(急急急,在线高分等待)

我目前用vc做一个程序,要在程序内模拟鼠标键盘,即是要在程序内实现自动移动鼠标、自动输入、自动点击等功能,注意了,我的程序是要在后台隐藏运行的,所以SetCursorPo... 我目前用vc做一个程序,要在程序内模拟鼠标键盘,即是要在程序内实现自动移动鼠标、自动输入、自动点击等功能,注意了,我的程序是要在后台隐藏运行的,所以 SetCursorPos、mouse_event这些不适应。
(补充:我的程序是这样的,我用单文档视图结构继承CHtmlView,做成一个自己的简单浏览器,需要在这个定制浏览器内自动点击等),高分真诚求助,希望大家写了代码能实现了再回答,不要光说理论哦!!
展开
 我来答
想象元素
2012-05-11 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:215
采纳率:0%
帮助的人:67.1万
展开全部
http://wenku.baidu.com/view/c8c141e84afe04a1b071de97.html?st=1(读写IO鼠标键盘驱动程序)
http://wenku.baidu.com/view/2ebaf5363968011ca3009195.html?st=1(向HtmlView发送鼠标键盘点击消息的代码)
这两个是我自己写的代码.
建议:定制浏览器的自动点击,使用模拟鼠标键盘的方式似乎不是很好.你在百度搜索一下"CHtmlView 点击",一般上都是使用IHTMLElement的click的方法点击.如果你想要更好的效果,那么可以下载一个visual sniffer,抓取数据并分析,然后再使用封包的方式,这样效果会更好
追问
你的代码很乱,我看不懂,能用文字介绍下你 这两个代码的作用及用法吗??
追答
对于浏览器来说,第一个代码是不需要的,因为浏览器不会象游戏那样使sendmessage之类的函数失效.
第二个代码中
HWND GetFinallyWindow(HWND hParent, POINTS pt)函数是得到最终需要发送消息的窗口的句柄.写这个函数的理由是,你直接向浏览器窗口发送消息,比如向其中一个button发送鼠标点击消息,你直接向htmlview类发送是没有效果的,只有找到该button的窗口句柄,然后再sendmessage....
hParent一般是指htmlview类或者其他浏览器窗口类的句柄,pt是鼠标点击的位置,是相对于hPareng而言的.
int SendMouseClickMessage(HWND hWnd, POINTS pt)函数是向htmlview发送一个鼠标点击消息的.
SendMouseDbClickMessage函数向htmlview发送一个鼠标双击消息
int SendKeyDownMessage(HWND hWnd, DWORD dwKey)函数向htmlview类发送一个键盘按下的消息

int SendKeyUpMessage(HWND hWnd, DWORD dwKey)向htmlview发送一个键盘弹起的消息
pressctrlv函数向htmlview发送一个ctrl+v键的消息
kdevilpf
2012-05-07 · TA获得超过2015个赞
知道大有可为答主
回答量:2086
采纳率:50%
帮助的人:1452万
展开全部
拿两分就跑,越快越好。点鼠标不可能了,向应用程序发送消息吧。
追问
只要能实现我所需要的在程序内模拟鼠标操作功能,不管是发送消息还是其他其他方法都可以,由于我基础薄弱,我需要关键具体实现的代码而不仅仅是理论哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
求求奥比绝版号
2012-05-09 · TA获得超过408个赞
知道小有建树答主
回答量:461
采纳率:0%
帮助的人:236万
展开全部
你可以用  消息发送啊
追问
恩,我看到网上很多都这么说,可我就是实现不了,你能自己先实现了功能再把代码贴上来给我吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yxj120600
2012-05-07 · TA获得超过246个赞
知道小有建树答主
回答量:471
采纳率:0%
帮助的人:275万
展开全部
使用消息发送。
更多追问追答
追问
只要能实现我所需要的在程序内模拟鼠标操作功能,不管是发送消息还是其他其他方法都可以,由于我基础薄弱,我需要关键具体实现的代码而不仅仅是理论哦
追答
用win32的API
设置光标位置
SetCursorPos(x,y);
----------------------------------------------------
鼠标事件
mouse_event(MOUSEEVENTF_LEFTDOWN,1,1,1,1);
--------------------------------
键盘事件
keybd_event(VK_LWIN, 0, 0, 0);
keybd_event('L', 0, 0, 0);
keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0);
keybd_event('L', 0, KEYEVENTF_KEYUP, 0);
------------------------------------------------
符号常量 十六进制值 指定的鼠标或键盘按键
  VK_LBUTTON 01 鼠标左键
  VK_RBUTTON 02 鼠标右键
  VK_CANCEL 03 Control-break 过程
  VK_MBUTTON 04 鼠标中键
  VK_BACK 08 BACKSPACE 键
  VK_TAB 09 TAB 键
  VK_CLEAR 0C CLEAR 键
  VK_RETURN 0D ENTER 键
  VK_SHIFT 10 SHIFT 键
  VK_CONTROL 11 CTRL 键
  VK_MENU 12 ALT 键
  VK_PAUSE 13 PAUSE 键
  VK_CAPITAL 14 CAPS LOCK 键
  VK_ESCAPE 1B ESC 键
  VK_SPACE 20 SPACEBAR
  VK_PRIOR 21 PAGE UP 键
  VK_NEXT 22 PAGE DOWN 键
  VK_END 23 END 键
  VK_HOME 24 HOME 键
  VK_LEFT 25 LEFT ARROW 键
  VK_UP 26 UP ARROW 键
  VK_RIGHT 27 RIGHT ARROW 键
  VK_DOWN 28 DOWN ARROW 键
  VK_SELECT 29 SELECT 键
  VK_EXECUTE 2B EXECUTE 键
  VK_SNAPSHOT 2C PRINT SCREEN键(用于Windows 3.0及以后版本)
  VK_INSERT 2D INS 键
  VK_DELETE 2E DEL 键
  VK_HELP 2F HELP 键
  ///////////////////////////////////////////////////
  对于字母键和非小键盘上的数字键,直接在单引号中加入该键就行.
  比如:a键:'A'
   1键:'1'
  //////////////////////////////////////////////
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式