回 帖 发 新 帖 刷新版面

主题:[讨论]请教一个较复杂的问题:

请教一个较复杂的问题:

状况:现有一台设备,操作界面是由VB所编(EXE文件,无法反编译),如果点击界面上的“开始”,则设备开始运转,点击界面上的“停止”,则设备停止运转。设备上有两个按钮,一个是开始,一个是停止。

目标:编一个小软件,如果鼠标点击界面上的“开始”或手按开始按钮,则在C盘的a.txt文件中每分钟写一个“1”;如果鼠标点击界面上的“停止”或手按停止按钮,则在C盘的a.txt文件中每分钟写一个“0”

请问:目标可以达到么?怎么达到?

谢谢各位学哥学姐!

回复列表 (共6个回复)

沙发

这个问题并不复杂,思路是:
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

板凳


对不起,可能是我没说清楚,是另外编写一个软件来监控原来的操作界面,当鼠标点击原界面上的“开始”或手按开始按钮,我的软件则在C盘的a.txt文件中每分钟写一个“1”;当鼠标点击原界面上的“停止”或手按停止按钮,我的软件则在C盘的a.txt文件中每分钟写一个“0”

3 楼

LZ不会是想在一个外部程序中监视另一个完全独立的程序的事件吧。
vb做全局hook ,远程注入代码?
有点难度。
如果有兴趣,可以看看http://hi.baidu.com/cxwr/blog/item/ac15ecc3ff89d556b319a884.html

4 楼

[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 楼

多年项目开发经验,专业做毕业设计等中小型项目开发,熟悉各种数据库操作(sql server ,access ,mysql等),熟练应用VC, Delphi, VB, ASP, C#等开发语言.若有需要请联系QQ: 383147818 加我请注明: pfan项目

6 楼

多年项目开发经验,专业做毕业设计等中小型项目开发,熟悉各种数据库操作(sql server ,access ,mysql等),熟练应用VC, Delphi, VB, ASP, C#等开发语言.若有需要请联系QQ: 383147818 加我请注明: pfan项目

我来回复

您尚未登录,请登录后再回复。点此登录或注册