vc6.0编程如何在程序内模拟鼠标键盘操作?(急急急,在线高分等待)
我目前用vc做一个程序,要在程序内模拟鼠标键盘,即是要在程序内实现自动移动鼠标、自动输入、自动点击等功能,注意了,我的程序是要在后台隐藏运行的,所以SetCursorPo...
我目前用vc做一个程序,要在程序内模拟鼠标键盘,即是要在程序内实现自动移动鼠标、自动输入、自动点击等功能,注意了,我的程序是要在后台隐藏运行的,所以 SetCursorPos、mouse_event这些不适应。
(补充:我的程序是这样的,我用单文档视图结构继承CHtmlView,做成一个自己的简单浏览器,需要在这个定制浏览器内自动点击等),高分真诚求助,希望大家写了代码能实现了再回答,不要光说理论哦!! 展开
(补充:我的程序是这样的,我用单文档视图结构继承CHtmlView,做成一个自己的简单浏览器,需要在这个定制浏览器内自动点击等),高分真诚求助,希望大家写了代码能实现了再回答,不要光说理论哦!! 展开
4个回答
展开全部
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,抓取数据并分析,然后再使用封包的方式,这样效果会更好
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键的消息
展开全部
拿两分就跑,越快越好。点鼠标不可能了,向应用程序发送消息吧。
追问
只要能实现我所需要的在程序内模拟鼠标操作功能,不管是发送消息还是其他其他方法都可以,由于我基础薄弱,我需要关键具体实现的代码而不仅仅是理论哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以用 消息发送啊
追问
恩,我看到网上很多都这么说,可我就是实现不了,你能自己先实现了功能再把代码贴上来给我吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用消息发送。
更多追问追答
追问
只要能实现我所需要的在程序内模拟鼠标操作功能,不管是发送消息还是其他其他方法都可以,由于我基础薄弱,我需要关键具体实现的代码而不仅仅是理论哦
追答
用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'
//////////////////////////////////////////////
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询