如何在我的DLL当中,获得窗口句柄?

时间:2021-07-15 09:04:28
各位大虾,请问我如何在我的DLL当中,获得装载DLL的那个线程是不是窗口过程?
如果是的话,我如何得到它的窗口句柄?谢谢!急急急

6 个解决方案

#1


用GetCurrentThead()获得这个这个句柄

#2


有个IsWindow(HWND)好像可以判断是不是窗口
你可以先用GetCurrentThead()获得句柄,然后用IsWindow判断是不是窗口句柄

#3


你指的窗口过程是什么意思?由线程得到窗口,好像很难。
最蠢但又很实际的方法是EnumWindows,在回调函数中判断窗口属不属于该线程!

#4


to wistaria
      我需要的是窗口句柄,不是线程句柄或者进程句柄。我知道线程句柄和窗口句柄相关,但他们两个究竟是什么关系,强制转化吗?

to wjf
     你这个方法也太。。。
    对不起,我的意思是太不直接了吧!真的就没有其他的好办法了吗?
不管怎么说,还是谢谢两位的解答!thank you!

#5


调用dll的线程应该主动给dll发消息,将自己的窗口句柄给dll。

#6


如果我的调用者自己就得不到window窗口句柄呢?
比如说,我这个DLL提供给Java调用的呢?我现在就是希望我的钩子函数能够钩到Java的窗口上去!所以才有这么奇怪的要求!
还请各位老大帮忙为小弟再想像,谢谢!

#1


用GetCurrentThead()获得这个这个句柄

#2


有个IsWindow(HWND)好像可以判断是不是窗口
你可以先用GetCurrentThead()获得句柄,然后用IsWindow判断是不是窗口句柄

#3


你指的窗口过程是什么意思?由线程得到窗口,好像很难。
最蠢但又很实际的方法是EnumWindows,在回调函数中判断窗口属不属于该线程!

#4


to wistaria
      我需要的是窗口句柄,不是线程句柄或者进程句柄。我知道线程句柄和窗口句柄相关,但他们两个究竟是什么关系,强制转化吗?

to wjf
     你这个方法也太。。。
    对不起,我的意思是太不直接了吧!真的就没有其他的好办法了吗?
不管怎么说,还是谢谢两位的解答!thank you!

#5


调用dll的线程应该主动给dll发消息,将自己的窗口句柄给dll。

#6


如果我的调用者自己就得不到window窗口句柄呢?
比如说,我这个DLL提供给Java调用的呢?我现在就是希望我的钩子函数能够钩到Java的窗口上去!所以才有这么奇怪的要求!
还请各位老大帮忙为小弟再想像,谢谢!