标签: shell-icons

获取Shell使用的文件图标

在.Net(C#或VB:不关心)中,给定真实文件的文件路径字符串,FileInfo结构或FileSystemInfo结构,如何确定shell(资源管理器)使用的图标文件?

我目前没有计划将它用于任何事情,但是当我看到这个问题时,我对如何做到这一点感到好奇,我认为在SO上存档是有用的.

.net c# vb.net winforms shell-icons

46
推荐指数
5
解决办法
4万
查看次数

Windows图标叠加 - 替代方案,改进和想法?

由于科迪灰色提到回答我的其他问题时,在这里,雷蒙德陈谈论覆盖图标怎么都一个糟糕的选择在这里(请注意,文章一岁).

反叠加的实质性论点是,一次只能显示一个......所以,如果两个适用,哪一个获胜?一个似是而非的论点是,只有15个 - 我认为这是微软的设计选择,而不是反对其功效的论据.

随着文件拓扑的变化:

  • 地点
  • 管理
  • 所有权
  • 同步
  • 复制
  • ?????

我相信文件和文件夹需要等效的状态指示器才能立即识别其状态.

什么是图标叠加的替代方法,它在文件/文件夹的状态上呈现相同的即时可视队列?也许需要一个新的图标模型?

编辑:

2010-12-14 我越是想到这一点,我就越觉得只有一个叠加层并且无法使叠加层一起工作的想法是荒谬的.

除非出于技术原因,否则您不能有多个叠加层?

考虑(在我的头顶):

  • 您可以将图标分成4个象限(左上角,右上角等) - 这将允许每个图标4个叠加.无需重叠间匹配.
  • 你可以叠加叠加层,并且只使用优先级来确定位置(z-order anybody?).允许用户访问用户空间优先级,因此USER(您知道该软件应该服务的人吗?)可以选择重要的覆盖范围.系统覆盖不是为覆盖保留一个点,而是具有最高优先级.

windows icons windows-explorer windows-shell shell-icons

10
推荐指数
1
解决办法
1970
查看次数

如何调整Windows图标叠加的大小?

我为我的文件制作了一个图标叠加层*.myfile,但叠加层大小错误.当图标显示为16x16大小时,叠加层将覆盖图标.

如何更改叠加尺寸?(IShellIconOverlayIdentifier)

左边是我的,右边是tortoisesvn

c# windows windows-shell shell-icons

6
推荐指数
1
解决办法
1954
查看次数

如何在java中获取linux文件夹和文件图标和名称?

我正在用java创建一个文件夹和文件树.Windows和OSX使用以下代码返回系统图标和名称:

new JFileChooser().getIcon(File f);
new JFileChooser().getName(File f);
Run Code Online (Sandbox Code Playgroud)

是否有可能获得unix系统的图标和名称?系统命令也可以.

谢谢.

java linux jfilechooser shell-icons

6
推荐指数
1
解决办法
2495
查看次数

使Windows刷新图标缓存

我真的很喜欢KDE SC 4的氧气外观.我写了一个程序将这些图标应用到windows.该程序是用NSIS编写的,目前几乎完全正常运行.但是,我发现让Windows了解图标更改的唯一方法是杀死explorer.exe,删除图标缓存,并重新生成explorer.exe.SHChangeNotifySHCNE_ASSOCCHANGED似乎无法使Windows知道的更改控制面板图标,我的电脑图标,等请提出一个更好的,那么残酷的方法来让Windows识别这些更改.

编辑:我发现了一个名为Icon Tweaker的程序似乎能够做到这一点,但它是封闭的来源,所以我不知道它是如何做到的.(IconTweaker:http://www.crystalxp.net/galerie/en.id.83-icontweaker.html )

编辑:感谢Anders的回复(见下文),我的工作正常.但是,我会把我工作的NSIS代码放在这里,万一其他人需要它

ReadRegStr $0 HKCU "Control Panel\Desktop\WindowMetrics" "Shell Icon Size"
IntOp $0 $0 + 1
WriteRegStr HKCU "Control Panel\Desktop\WindowMetrics" "Shell Icon Size" $0
SendMessage 0xffff 0x001A 42 0 /TIMEOUT=100000
IntOp $0 $0 - 1
WriteRegStr HKCU "Control Panel\Desktop\WindowMetrics" "Shell Icon Size" $0
SendMessage 0xffff 0x001A 42 0 /TIMEOUT=100000
Run Code Online (Sandbox Code Playgroud)

$ 0寄存器用于存储Shell Icon SizeHKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics.然后我们递增值并执行a SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, SPI_SETNONCLIENTMETRICS, 0, SMTO_ABORTIFHUNG, 100000, NULL),然后递减并重新发送.

编辑:作为奖励,这可以用作在Windows …

windows icons nsis windows-shell shell-icons

5
推荐指数
2
解决办法
6234
查看次数