C#隐藏桌面图标
2022/1/17 20:09:20
本文主要是介绍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); }
这篇关于C#隐藏桌面图标的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具
- 2024-01-24.NET集成IdGenerator生成分布式全局唯一ID
- 2024-01-23用CI/CD工具Vela部署Elasticsearch + C# 如何使用
- 2024-01-23.NET开源的简单、快速、强大的前后端分离后台权限管理系统
- 2024-01-23C#对象二进制序列化优化:位域技术实现极限压缩