CnPack Forum


 
Subject: [HELP]有沒有簡單的辦法監控窗口信息?
jAmEs_
灌水部部长
Rank: 8Rank: 8



Medal No.1  
UID 886
Digest Posts 0
Credits 1134
Posts 600
点点分 1134
Reading Access 10
Registered 2005-6-5
Location 广东
Status Offline
Post at 2008-11-10 16:06  Profile | Blog | P.M. 
[HELP]有沒有簡單的辦法監控窗口信息?

比如我希望每個窗口關閉前,都執行某些代碼。
排除使用HOOK、繼承窗口、也不能代替事件觸發的方法等方法。因為程序已經開發好了,不想調整。
最好是Windows自己的機制,如在子窗口關閉前,能發送消息到主窗口?之類的。。。
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6838
Posts 3591
点点分 6838
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2008-11-10 17:36  Profile | Blog | P.M. 
那就得你写个程序来设置消息钩子以避免修改原有程序?
Top
jAmEs_
灌水部部长
Rank: 8Rank: 8



Medal No.1  
UID 886
Digest Posts 0
Credits 1134
Posts 600
点点分 1134
Reading Access 10
Registered 2005-6-5
Location 广东
Status Offline
Post at 2008-11-10 17:53  Profile | Blog | P.M. 
怎么寫?我還想不到。。。
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6838
Posts 3591
点点分 6838
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2008-11-10 18:02  Profile | Blog | P.M. 
SetWindowHook系列API以及使用例子查查?
Top
jAmEs_
灌水部部长
Rank: 8Rank: 8



Medal No.1  
UID 886
Digest Posts 0
Credits 1134
Posts 600
点点分 1134
Reading Access 10
Registered 2005-6-5
Location 广东
Status Offline
Post at 2008-11-10 18:10  Profile | Blog | P.M. 
暈,我剛才說了不用HOOK,以我自己的使用經驗,HOOK不太安全,很特別是全局HOOK,搞不好影響系統的穩定性。
另外,我HOOK過了,竟然不行,似乎跟代碼在BPL下有關係。。。但是具體還不知道。
如果用HOOK,我還不如直接設置WindowProc?因為都只是一個工程裡面。
其實還有RtlVclOptimize.pas這個在DelphiSpeedUp裡面的一個單元來處理,它可以替換函數,包括類的函數,算比較完美的做法,但是我還是擔心它的穩定性。
Top
jAmEs_
灌水部部长
Rank: 8Rank: 8



Medal No.1  
UID 886
Digest Posts 0
Credits 1134
Posts 600
点点分 1134
Reading Access 10
Registered 2005-6-5
Location 广东
Status Offline
Post at 2008-11-11 21:49  Profile | Blog | P.M. 
最终采用Hook实现了,开始我用WH_CBT来处理,存在问题。经过测试发现(自己推测,没有详细跟踪,因为在BCB下面,不方便调试Pas源码):
我在nCode=HCBT_CREATEWND时,通过Screen.Forms[x].Handle来检查创建的TForm,但是由于此时刚刚准备创建的TForm的Handle还没有产生,导致执行HandleNeeded,然后又触发nCode=HCBT_CREATEWND,然后又HandleNeeded。。。
后来改成监控其他nCode来实现。
Top
 




All times are GMT++8, the time now is 2024-11-22 01:38

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.008579 second(s), 7 queries , Gzip enabled

Clear Cookies - Contact Us - CnPack Website - Archiver - WAP