C#隐藏桌面图标
private void ShowDeskIcon(bool b)//控制桌面图标显隐 { IntPtr desk = FindWindow("ProgMan", null);//获取桌面句柄 IntPtr list_ = FindWindowEx(desk, 0, "SHELLDLL_DefView", null);//获取上级句柄 IntPtr Idesk = FindWindowEx(list_, 0, "SysListView32", "FolderView"); //获取桌面 //图标列表句柄,list_为上级父句柄值,用 精易编程助手 查询 int value = 0; if (b == true) { value = 5; } ShowWindow(Idesk, value); //value=5时显示,value=0时隐藏 }
出处:https://blog.csdn.net/qq_24125575/article/details/73188166
==============================================================
我自己做测试的时候,使用上面的代码在win10上测试不成功,使用Spy++查看句柄如下:
修改如下:
int b = 0; private void Button_Click(object sender, RoutedEventArgs e) { b++; // 遍历顶级窗口 Win32Func.EnumWindows((hwnd, lParam) => { // 找到第一个 WorkerW 窗口,此窗口中有子窗口 SHELLDLL_DefView,所以先找子窗口 var shellDll = Win32Func.FindWindowEx(hwnd, IntPtr.Zero, "SHELLDLL_DefView", null); if (shellDll != IntPtr.Zero) { // 找到当前第一个 WorkerW 窗口的,后一个窗口,及第二个 WorkerW 窗口。 //IntPtr tempHwnd = Win32Func.FindWindowEx(IntPtr.Zero, hwnd, "WorkerW", null); IntPtr Idesk1 = Win32Func.FindWindowEx(shellDll, IntPtr.Zero, "SysListView32", "FolderView"); //获取桌面 //Win32Func.ShowWindow(Idesk, b % 5); //value=5时显示,value=0时隐藏 Win32Func.ShowWindow(Idesk1, (b % 2 == 0 ? 0 : 5)); //value=5时显示,value=0时隐藏 } return true; }, IntPtr.Zero); }
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/15814337.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2020-01-17 错误 CS1617 /langversion 的选项“8.0”无效。
2014-01-17 bat中的“多线程”处理代码