在试用某些Ap时,发现有些Ap的窗口可以嵌入桌面,这样Win+D键的时候就可以看到,很方便。在网上搜索了一下,原理就是将窗口的父窗口设置成桌面。
这个父窗口在Xp下通过FindWindow("Program manager","progman")找到,但是在win7下这个方法找到的父窗口就不好用了。用spy++看了之后,写了下面一段代码 findDesktopIconWnd(),在xp和win7下都可以找到这个父窗口。子窗口再调用SetParent(child,parent)就可以在桌面上看到了。
static BOOL enumUserWindowsCB(HWND hwnd,LPARAM lParam)
{
long wflags = GetWindowLong(hwnd, GWL_STYLE);
if(!(wflags & WS_VISIBLE)) return TRUE;
HWND sndWnd;
if( !(sndWnd=FindWindowEx(hwnd, NULL, L"SHELLDLL_DefView", NULL)) ) return TRUE;
HWND targetWnd;
if( !(targetWnd=FindWindowEx(sndWnd, NULL, L"SysListView32", L"FolderView")) ) return TRUE;
HWND* resultHwnd = (HWND*)lParam;
*resultHwnd = targetWnd;
return FALSE;
}
HWND findDesktopIconWnd()
{
HWND resultHwnd = NULL;
EnumWindows((WNDENUMPROC)enumUserWindowsCB, (LPARAM)&resultHwnd);
return resultHwnd;
}
分享到:
相关推荐
# PyQt5将窗口嵌入桌面源码 恢复时不会留下窗口痕迹 1. 使用 pywin32 查找到"SHELLDLL_DefView"窗口的父窗口,即桌面; 2. 将桌面设置为自己创建的 PyQt 窗口的父窗口,窗口即可嵌入到桌面; 3. 在右下角菜单栏显示...
易语言把程序窗口嵌入桌面源码,把程序窗口嵌入桌面,新父窗口,寻找顶级窗口
# PySide2(Qt for Python)窗口嵌入桌面示例 1. 使用win32api.EnumWindows()枚举窗口; 2. 先找到"SHELLDLL_DefView"窗口的父窗口;...例程使用方法:右键托盘栏图标,可以选择将窗口嵌入桌面或将窗口变回正常桌面。
完整版把自己的窗口嵌入桌面[源码].bak.rar
易语言窗口嵌入桌面做动态壁纸,请程序关闭前卸载钩子。@枫叶因你而生。
C# 调用API实现窗体嵌入桌面,鼠标穿透功能。
易语言源码把程序窗口嵌入桌面.7z
完整版把自己的窗口嵌入桌面[源码].rar
完整版把自己的窗口嵌入桌面[源码].e.rar
易语言源码把程序窗口嵌入桌面.rar
把自己的窗口嵌入桌面[源码].rar
易语言嵌入窗口源码,嵌入窗口,窗口嵌入
摘要:VB源码,系统相关,桌面窗体 vb窗体嵌入桌面,也可以还原回正常窗体,测试中没有发现有什么变化,大家仔细测试一下,源文件可以正确编译。
易语言源码易语言智能嵌入桌面源码.rar 易语言源码易语言智能嵌入桌面源码.rar 易语言源码易语言智能嵌入桌面源码.rar 易语言源码易语言智能嵌入桌面源码.rar 易语言源码易语言智能嵌入桌面源码.rar 易语言源码...
易语言源码易语言将桌面嵌入窗口源码.rar 易语言源码易语言将桌面嵌入窗口源码.rar 易语言源码易语言将桌面嵌入窗口源码.rar 易语言源码易语言将桌面嵌入窗口源码.rar 易语言源码易语言将桌面嵌入窗口源码.rar ...
把程序窗口嵌入桌面
vb窗体嵌入桌面,也可以还原回正常窗体,测试中没有发现有什么变化,大家仔细测试一下,源文件可以正确编译。
把自己的窗口嵌入桌面[源码],源码是易语言API的应用教程。@易语言学习网站。