2014-11-14 38 views
2

我有一个VBScript切换代理开启和关闭。我想相应地更改文件图标,以便在代理打开时文件图标是绿色的勾号,当它处于关闭状态时,图标是红色的叉号(这意味着我可以在运行之前查看代理是否处于活动状态剧本)。修改文件图标

如何以编程方式更改图标?只是为了这个文件,并不是所有的VBScripts!

+0

由于安斯加尔这是脚本 组SH =的CreateObject( “WScript.Shell”) lnkfile = sh.SpecialFolders( “桌面”)& “\ proxy.lnk” 的最终版本 集LNK = sh.CreateShortcut(lnkfile) If lnk.IconLocation = sh.SpecialFolders(“Desktop”)&“\ g.ico,0”Then lnk.IconLocation = sh.SpecialFolders(“Desktop”)&“\ r.ico ,0" 否则 lnk.IconLocation = sh.SpecialFolders( “桌面”) “\ g.ico,0” 结束如果 lnk.Save 再次感谢 – user1375452

+0

对不起,米我最后的评论一塌糊涂! – user1375452

回答

4

您无法更改特定文件的图标。但是,您可以将特定快捷方式的图标更改为文件。

Set sh = CreateObject("WScript.Shell") 

lnkfile = sh.SpecialFolders("Desktop") & "\your.lnk" 

Set lnk = sh.CreateShortcut(lnkfile) 
If lnk.IconLocation = "C:\path\to\some.ico" Then 
    lnk.IconLocation = "C:\path\to\.ico" 
Else 
    lnk.IconLocation = "C:\path\to\some.ico" 
End If 
lnk.Save 

如果快捷键位于所有用户的桌面文件夹(C:\Users\Public\Desktop),你需要用"AllUsersDesktop"更换"Desktop"

+0

我喜欢它!但是,我的代码每次运行时都会创建一个新的快捷方式。我如何选择现有的lnk? – user1375452

+0

@ user1375452代码应该修改现有的快捷方式。但是,桌面显示“%USERPROFILE%\ Desktop”和“C:\ Users \ Public \ Desktop”的内容。如果快捷方式位于后者中,则需要使用“AllUsersDesktop”而不是“Desktop”。 –

+0

作品!非常感谢!请注意,我必须将IconLocation编辑为“C:\ path \ to \ some.ico,0”;)或者它不会从一个ico切换到另一个 – user1375452