2012-11-05 35 views
5

Tôi có một kịch bản PowerShell tạo lối tắt đến các vị trí mạng khi đăng nhập. Thật không may, nó sử dụng một biểu tượng độ phân giải thấp cũ. Nó không phải là một vấn đề lớn bởi bất kỳ phương tiện, nhưng tôi muốn sử dụng các biểu tượng được cập nhật trong các phiên bản sau của Windows.Cách chọn biểu tượng "địa điểm mạng" phù hợp?

Dưới đây là phần có liên quan của chức năng tạo ra các phím tắt:

# 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) 

Như bạn có thể thấy, phần này hiện đang sử dụng Icon # 275 trong thư viện SHELL32.DLL. Trong Windows 7, biểu tượng "thích hợp" sẽ là Biểu tượng # 143 trong imageres.dll. Có cách nào để có được các chi tiết biểu tượng từ hệ điều hành như nhận được một tham chiếu đến một thư mục đặc biệt trong không gian tên Explorer?

+0

Icon # 143 trong imageres.dll không phải là bật đèn xanh cho bạn ? – JPBlanc

+0

Nếu tập lệnh chạy trên máy Windows XP, nó sẽ kéo biểu tượng sai, vì các chỉ mục khác nhau giữa các bản dựng. – bshacklett

+0

Tại sao không kiểm tra tên hệ thống tác nhân và thay đổi số để lựa chọn trước khi tạo liên kết? –

Trả lời

6

My Network Places có CLSID 208d2c60-3aea-1069-a2d7-08002b30309d

Biết được điều này, bạn có thể đọc các giá trị registry mặc định tại HKEY_CLASSES_ROOT\CLSID\{208D2C60-3AEA-1069-A2D7-08002B30309D}\DefaultIcon

Kết quả sẽ là ví dụ %SystemRoot%\system32\imageres.dll,-25

Các vấn đề liên quan