是这样的,我有一A.EXE,可以通过一个外部文件指定发送到哪个窗体的文件.
如
TXXClass EXENAME 窗口名
TXXClassA EXENAMEA 窗口名A
TXXClassB EXENAMEB 窗口名B
TXXClassC EXENAMEC 窗口名C现在我只打开了EXENAMEB进行接收消息换句话说,我想用A.EXE发送一个消息给EXENAMEB 但我是根据文件全发的,如果ABC窗体都打开,则都可以收到A.EXE发来的消息
现在问题是A.EXE执行了发送,但我这四个窗口没有一个可以收得到?
请问我有什么方法可以跟踪A.EXE发出了消息,并发送到了哪一个窗口句柄.SPY++能否捉到.
或有更好的办法.
如
TXXClass EXENAME 窗口名
TXXClassA EXENAMEA 窗口名A
TXXClassB EXENAMEB 窗口名B
TXXClassC EXENAMEC 窗口名C现在我只打开了EXENAMEB进行接收消息换句话说,我想用A.EXE发送一个消息给EXENAMEB 但我是根据文件全发的,如果ABC窗体都打开,则都可以收到A.EXE发来的消息
现在问题是A.EXE执行了发送,但我这四个窗口没有一个可以收得到?
请问我有什么方法可以跟踪A.EXE发出了消息,并发送到了哪一个窗口句柄.SPY++能否捉到.
或有更好的办法.
解决方案 »
- 为什么我的fastreport没有newpage?
- 有没有函数能够 把10.12.5拆分成10.12 和 5 ,10.12.4.5 拆分成10.12.4和 5 ,把它分离开?
- 50分求助!sql 语句中做除法,若分母为零该如何处理
- ADO访问SQL要先通过网上邻居访问数据库服务器一次,ADO才能连接,忘大侠帮忙解答
- 一个字符串里怎么输出单引号?
- 有关toolbar的问题?
- 一个delphi初学者的问题.
- 三层结构如何同时建立不同的连接
- [转帖]爱心需不需要回报?
- 关于popupmenu的简单问题,但我就是解决不了,大家都进来看看吧。解决者必定给分!
- 如何对Excel获取指定名称单元格进行操作?
- FastReport报表中的TfrxDetailData 只显示奇数行
回复2楼,如果WIN过程可以过滤得出来,就证明发到了窗体,现在就是没有发到,用HOOK去勾消息,可以勾到,但不知道该消息是发向哪个窗体句柄的.
如A.EXE,发送一个"修改B程序窗口标题的消息",半路截获,改装消息,再发送回给B程序.
SendMessage(B.handle,XX,0,0);半路,被我用HOOK勾到了XX,但我只知道有这到一个消息,并不知道这个消息发给谁的.当然在透明状态可
勾到后做处理再SENDMESSAGE即可.现在就是不透明,不知道哪个程序发出的XX消息,我只知道有这个XX消息,捉到了,如果从捉到的XX消息中知道,正发往何处.
这个好办吧,在你的SendMessage(,,,,)后两个参数可以是结构体指针,这个你随便定义,
你可以定义个指针,如:
TSndMsgPa= record
Form: string;{来自哪个窗口}
To: string; {将去哪}
end;
PSndMsgPa = ^TSndMsgPa;
SndMsgPa: PSndMsgPa ;
具体类型根据需要定义,发送的时候你总知道是从谁发的,发给谁吧,然后再SendMessage(,,Integer(@SndMsgPa),)咯,截获的时候再把相应的玩意解析不就o了!