如何选择合适的“网络地点”图标?

时间:2012-11-05 21:28:08

标签: .net powershell environment windows-explorer

我有一个PowerShell脚本,可以在登录时创建网络位置的快捷方式。不幸的是,它使用的是旧的低分辨率图标。这无论如何都不是什么大不了的事,但我想在更高版本的Windows中使用更新的图标。

以下是创建快捷方式的函数的相关部分:

# Create the shortcut file

$shortcut = (New-Object -ComObject WScript.Shell).Createshortcut("$shortcutFolder\target.lnk")

$shortcut.TargetPath = $targetPath
if (
$shortcut.IconLocation = "%SystemRoot%\system32\SHELL32.DLL, 275"
$shortcut.Description = $targetPath
$shortcut.WorkingDirectory = $targetPath
$shortcut.Save()

# Set attributes on the files & folders
$desktopIni | Set-ItemProperty -Name Attributes -Value ([IO.FileAttributes]::System -bxor [IO.FileAttributes]::Hidden)
$shortcutFolder | Set-ItemProperty -Name Attributes -Value ([IO.FileAttributes]::ReadOnly)

如您所见,它目前正在使用SHELL32.DLL库中的Icon#275。在Windows 7中,“正确”图标将是imageres.dll中的图标#143。有没有办法从操作系统中获取图标细节,比如在Explorer命名空间中获取对特殊文件夹的引用?

1 个答案:

答案 0 :(得分:6)

我的网上论坛有CLSID 208d2c60-3aea-1069-a2d7-08002b30309d

了解这一点,您可以在HKEY_CLASSES_ROOT\CLSID\{208D2C60-3AEA-1069-A2D7-08002B30309D}\DefaultIcon

处读取默认注册表值

结果将是%SystemRoot%\system32\imageres.dll,-25