在不把窗口设置成当前窗口的条件下,对窗口进行操作。
2006-06-29 19:55
211 查看
做外挂的第一步,就是模拟键盘鼠标的操作。模拟很简单,但要在不抢鼠,不与键盘冲突,不影响用户其他操作的条件下模拟对我来说就困难了。
以下问题都以一含有确定按钮和一文本框的程序为例:
解决思路:
1:不抢鼠,不与键盘冲突:
我用SendMessage(HWND hWnd, //要操作的句柄
UINT iMessage, //消息代码
WPARAM wParam, //字参数,内容有具体消息决定。
LPARAM lParam //长参数,内容有具体消息决定。 );
来模拟鼠标和键盘的操作。
2:不影响用户其他操作:
就是在非当前窗口环境下让窗口接受消息。
1:把所有消息直接发给窗口处理。消息代码为WM_COMMAND,字参数内容付值为控件的ID。
WM_COMMAND wNotifyCode = HIWORD(wParam);
wID = LOWORD(wParam);
hwndCtl = (HWND) lParam;
wNotifyCode
Value of the high-order word of wParam. Specifies the notification code if the message is from a control. If the message is from an accelerator, this parameter is 1. If the message is from a menu, this parameter is 0.
wID
Value of the low-order word of wParam. Specifies the identifier of the menu item, control, or accelerator.
hwndCtl
Handle to the control sending the message if the message is from a control. Otherwise, this parameter is NULL.
2:直接对要操作的对象发送消息,这种情况要激活他的父窗口,用SetActiveWindow()实现。但是SetActiveWindow()是个只对本进程内窗口可用的函数,要对其他窗口起作用就要配合AttachThreadInput()使用。
有点累,不太适合对屏幕写东西,呵呵。先到这吧,一会补充。
以下问题都以一含有确定按钮和一文本框的程序为例:
解决思路:
1:不抢鼠,不与键盘冲突:
我用SendMessage(HWND hWnd, //要操作的句柄
UINT iMessage, //消息代码
WPARAM wParam, //字参数,内容有具体消息决定。
LPARAM lParam //长参数,内容有具体消息决定。 );
来模拟鼠标和键盘的操作。
2:不影响用户其他操作:
就是在非当前窗口环境下让窗口接受消息。
1:把所有消息直接发给窗口处理。消息代码为WM_COMMAND,字参数内容付值为控件的ID。
WM_COMMAND wNotifyCode = HIWORD(wParam);
wID = LOWORD(wParam);
hwndCtl = (HWND) lParam;
wNotifyCode
Value of the high-order word of wParam. Specifies the notification code if the message is from a control. If the message is from an accelerator, this parameter is 1. If the message is from a menu, this parameter is 0.
wID
Value of the low-order word of wParam. Specifies the identifier of the menu item, control, or accelerator.
hwndCtl
Handle to the control sending the message if the message is from a control. Otherwise, this parameter is NULL.
2:直接对要操作的对象发送消息,这种情况要激活他的父窗口,用SetActiveWindow()实现。但是SetActiveWindow()是个只对本进程内窗口可用的函数,要对其他窗口起作用就要配合AttachThreadInput()使用。
有点累,不太适合对屏幕写东西,呵呵。先到这吧,一会补充。
相关文章推荐
- [Selenium]通过Selenium实现在当前浏览器窗口点击一个图标之后,弹出另外一个窗口,关闭这个窗口,再回到原来的窗口进行操作
- [Selenium]通过Selenium实现在当前浏览器窗口点击一个图标之后,弹出另外一个窗口,关闭这个窗口,再回到原来的窗口进行操作
- [Selenium]通过Selenium实现在当前浏览器窗口点击一个图标之后,弹出另外一个窗口,关闭这个窗口,再回到原来的窗口进行操作
- js获取或设置当前窗口url参数的小例子
- 56、vi常见用法,多窗口模式,标记,多文件编辑,快捷操作及设置
- js操作当前窗口
- java 操作mongodb查询条件设置
- Jmeter If Controller中设置多个条件用“与”进行连接
- 允许进行DML操作的视图条件
- 获得和设置流指针--进行读取写入操作
- mysql超时设置的问题,如果连接闲置8小时 (8小时内没有进行数据库操作), mysql就会自动断开连接, 要重启tomcat
- [Selenium]对弹出的Alert窗口进行操作
- Jav 4000 a操作Hbase进行建表、删表以及对数据进行增删改查,条件查询(转)
- GridView分页后跳转其他页面进行添加,编辑,删除操作后,仍返回到当前页码[原]
- 通过组合条件对DAO进行查询操作
- C# 设置 Excel 条件格式 与 冻结窗口
- 如何在Webstorm/Phpstorm中设置连接FTP,并快速进行文件比较,上传下载,同步等操作
- Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
- PB数据窗口datawindow的查询条件设置和执行