日期:2014-05-17  浏览次数:21175 次

C#如何获取本进程中的窗口句柄?
RT

我需要在C#中调用C++写的DLL,DLL里面是封装了一些钩子函数,把拦截到的消息通过PostMessage的形式发送到由C#编写的程序对消息进行处理。

而PostMessage第一个参数就是窗口句柄。

以前用QT写界面可以直接用 界面.winId() 来获取当前界面的窗口句柄,这样就可以将消息投递到我的界面程序里面了。


网上找了很多,都是一些什么枚举窗口句柄来获取自己窗口句柄的。考虑到这样貌似比较麻烦而且效率也不太好。

所以请问一下,C#中如何获得本进程的窗口ID?

最好不要FindWindow之类的方法。这方法虽然可行但是一点都不可靠。假设我换了个窗口标题呢?或者进程中还有其他同名的进程呢?又或者是我的界面被隐藏or最小化呢?就找不到窗口句柄了。

因为对C#不是特别的了解,故前来该版块求大神解答~
c# 界面 c++ qt

------解决方案--------------------
 this.Handle??