VB6还是VBNET。VBNET不知道
VB6应该是不可能的,除非有那种很高的高手高手高高手,哈哈
我也写过一个类似的程序,处理办法是用Timer不停的检查那个另外程序的窗口句柄是否存在,不存在就Unload掉自己的程序窗口。但是自己的程序不能只有一个窗口。
我想问一下,楼主SetParent的时候是怎么检查窗口是否存在的啊,一个道理吧。
如果楼主实在想挂钩子的话,也不是没办法,用C++写个DLL,然后VB调用。如果楼主想光用VB6,用VB6写个标准的DLL试试吧。听说现在VB6有办法写标准DLL,我没写过,也绝对不保证VB6写的DLL挂钩子能好用。
这是因为被设置了消息模式。再打开一个新的聊天窗口,然后点击“发送”右边那个小三角形,这个时候你会发现在出现的下拉框中有一个“消息模式”,而且前面一定带个勾,你点击“消息模式”,前面的勾就消失了,你再和好友聊天,发送信息后,聊天窗口就不会自动关 消息模式与聊天模式转换 ALT+T 快速呼出 CTRL+ALT+Z
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
解析:
通过呼叫GetParent,子窗口消息处理程序能确定其父窗口的窗口句柄:hwndParent = GetParent (hwnd) ;
当前窗口的句柄可以通过当前窗体的回调函数中的参数来取得~
没有理解明白你的意思!
如果是要获取其它窗口的消息队列中的消息,是可以的使用GetMessage和PeekMessage等API是可以完成的,VC中著名的Spy++就有这样的功能
但是楼主貌似是要实现拦截导致发生特定事件的消息,像你所说的IE反应d出窗的消息等,理论上是可以实现的。
前提是你要非常熟悉windows的消息处理机制,知道发生特定事件时,系统发了那些消息,以及程序内部发了哪些自定义消息,沿着这种流程查应该可以实现,但是这样的技术对程序员的功底要求很高,不是那么简单的,更不是几个函数就能搞定的
调用Windows
API
EnumWindows就可以枚举所有顶级窗口,所谓顶级窗口就是指没有父窗口的窗口。
函数定义:
BOOL
WINAPI
EnumWindows(
__in
WNDENUMPROC
lpEnumFunc,
__in
LPARAM
lParam
);
第一个参数是回
Windows消息机制需要Handle来做前提,所以"新建的窗口FormClosing已经发送了消息给类"这句话我不是很明白。
如果你想实现广播机制的话,可以使用C#中的委托机制来实现你的逻辑。
既在你的类中给Form类的FormClosing事件添加一个回调函数,这样,在窗体关闭的时候,自然就会通知这个类,然后调用你的回调函数。
以上就是关于怎么截获其他窗口的消息全部的内容,包括:怎么截获其他窗口的消息、如何打开消息窗口、如何获取当前窗口的句柄,以及父窗口的句柄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)