windows获取桌面句柄

昨晚上一位朋友问我如何获取桌面句柄,当时第一反应就是用GetDesktopWindow()来获取,但是这个函数获取的是覆盖整个屏幕的句柄,如果只获取桌面的句柄,则不能使用这个函数。

通过Spy++发现,桌面其实是一个子窗口,其上面有两个父窗口 如图:


这三个窗口都没有标题,它们的类名分别为:Progman、SHELLDLL_DefView和SysListView32;这就好办了,只需要获取到Progman的句柄,再获取它的子窗口的子窗口就是桌面句柄,代码如下:

HWND hWnd = FindWindow("Progman", NULL);  
hWnd = GetWindow(hWnd, GW_CHILD);  
hWnd = GetWindow(hWnd, GW_CHILD); 
这样就可以获取到桌面句柄了。

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值