主题:[讨论]请教一个较复杂的问题:
ictest
[专家分:0] 发布于 2010-04-25 00:05:00
请教一个较复杂的问题:
状况:现有一台设备,操作界面是由VB所编(EXE文件,无法反编译),如果点击界面上的“开始”,则设备开始运转,点击界面上的“停止”,则设备停止运转。设备上有两个按钮,一个是开始,一个是停止。
目标:编一个小软件,如果鼠标点击界面上的“开始”或手按开始按钮,则在C盘的a.txt文件中每分钟写一个“1”;如果鼠标点击界面上的“停止”或手按停止按钮,则在C盘的a.txt文件中每分钟写一个“0”
请问:目标可以达到么?怎么达到?
谢谢各位学哥学姐!
回复列表 (共6个回复)
沙发
一江秋水 [专家分:9680] 发布于 2010-04-25 07:19:00
这个问题并不复杂,思路是:
1.在窗体上添加一个计时器,设置为每60000毫秒运行一次。
2.设置一个全局字符变量,例如:
dim st as string
3.在“开始”按纽的单击事件中,设置这个变量的值:st = "1"
4.在“停止”按纽的单击事件中,设置这个变量的值:st = "0"
5.在计时器的Timer事件中,往C盘的a.txt文件上写入st,要使用添加模式,如:
open "c:\a.txt" for append as #1
write #1, st
close #1
板凳
ictest [专家分:0] 发布于 2010-04-25 07:54:00
对不起,可能是我没说清楚,是另外编写一个软件来监控原来的操作界面,当鼠标点击原界面上的“开始”或手按开始按钮,我的软件则在C盘的a.txt文件中每分钟写一个“1”;当鼠标点击原界面上的“停止”或手按停止按钮,我的软件则在C盘的a.txt文件中每分钟写一个“0”
3 楼
天天学习 [专家分:4570] 发布于 2010-04-26 15:09:00
LZ不会是想在一个外部程序中监视另一个完全独立的程序的事件吧。
vb做全局hook ,远程注入代码?
有点难度。
如果有兴趣,可以看看http://hi.baidu.com/cxwr/blog/item/ac15ecc3ff89d556b319a884.html
4 楼
tanchuhan [专家分:15140] 发布于 2010-04-26 17:48:00
[quote]LZ不会是想在一个外部程序中监视另一个完全独立的程序的事件吧。
vb做全局hook ,远程注入代码?
有点难度。
如果有兴趣,可以看看http://hi.baidu.com/cxwr/blog/item/ac15ecc3ff89d556b319a884.html[/quote]
有点讨厌那丫
打开才发现我以前竟然在里面留言,不过给他删了
不用它搞那么复杂,用CreateRemoteThread(hProcess, LoadLibrary, pDllPath);远程插入dll,然后在dll里面子类化那两个按钮就行了,完全用不到汇编.
OpenProcess获取进程句柄
VirtualAllocEx远程分配内存
WriteProcessMemory远程写你的DLL路径到那段内存
CreateRemoteThread让目标进程加载你的DLL
在DLL里
SetWindowLong子类化目标控件,检测到点击消息后
SendMessage发消息通知你自己的进程
OK
参考书目:《Windows核心编程》
5 楼
gfan [专家分:60] 发布于 2010-05-05 13:22:00
多年项目开发经验,专业做毕业设计等中小型项目开发,熟悉各种数据库操作(sql server ,access ,mysql等),熟练应用VC, Delphi, VB, ASP, C#等开发语言.若有需要请联系QQ: 383147818 加我请注明: pfan项目
6 楼
gfan [专家分:60] 发布于 2010-05-05 13:27:00
多年项目开发经验,专业做毕业设计等中小型项目开发,熟悉各种数据库操作(sql server ,access ,mysql等),熟练应用VC, Delphi, VB, ASP, C#等开发语言.若有需要请联系QQ: 383147818 加我请注明: pfan项目
我来回复