是否可以用 C# 隐藏特定的桌面图标?
我正在寻找一种从桌面隐藏特定图标的方法。我的桌面上通常有很多图标(这使得查找文件变得很麻烦),所以我想编写一个小工具,在我键入时“过滤”它们。我不想“移动”或删除它们,只是隐藏(或变暗)它们。我知道如何一次切换显示所有图标的隐藏状态,但不是基于每个图标。有什么想法吗?
I'm searching for a way to hide specific Icons from the Desktop. I usually have way to much icons on my desktop (which makes finding a file a real hassle), so I would like to write a little tool, which "filters" them as I type. I do not want to "move" or delete them, just hide (or darken) them. I know how to toggle show an hide-status of all icons at once, but not on a per icon basis. Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我会尝试以某种方式导航到桌面的
ListView
控件(使用 Win32 API)。然后我要么在我想要隐藏的项目上绘制一些半透明矩形(您可以使用ListItem_GetItemRect
宏/消息查询项目的矩形),从列表控件中临时删除项目,设置项目的状态为CUT
(淡出),或者我尝试操作列表视图的图像列表以添加透明图像并将项目的图像设置为此。但我不知道这种方法是否有效......而且我不确定是否会在 C# 中尝试这个(我宁愿使用 C++)。
I'd try to somehow navigate to the desktop's
ListView
control (using Win32 API). Then I'd either draw some semi-transparent rectangles over the items I want to hide (you can query the rectangles of items using theListItem_GetItemRect
macro/message), remove items temporaryly from the list control, set the status of the items toCUT
(which fades the out) or I'd try manipulate the list view's image list to add a transparent image and set the item's images to this.But I have no idea if this approach would work ... And I'm not sure if I'd try this in C# (I'd rather use C++).
@crono,我认为您最好的选择是添加对 COM 库“Microsoft Shell Control And Automation”的引用并使用 Shell32.Shell 对象。然后枚举快捷方式并设置快捷方式的文件属性(FileAttributes.Hidden)。
检查这些链接以获取更多信息。
看这个简单的例子,并不完整,只是一个草稿。
@crono, I think wich your best option is add a reference to the COM library "Microsoft Shell Control And Automation" and use the Shell32.Shell object. and then enumerate the shortcuts and set the file atributes (FileAttributes.Hidden) of the shortcuts.
check these links for more info.
see this simple example, is not complete, is just a draft.