我有一个VBScript切换代理开启和关闭。我想相应地更改文件图标,以便在代理打开时文件图标是绿色的勾号,当它处于关闭状态时,图标是红色的叉号(这意味着我可以在运行之前查看代理是否处于活动状态剧本)。修改文件图标
如何以编程方式更改图标?只是为了这个文件,并不是所有的VBScripts!
我有一个VBScript切换代理开启和关闭。我想相应地更改文件图标,以便在代理打开时文件图标是绿色的勾号,当它处于关闭状态时,图标是红色的叉号(这意味着我可以在运行之前查看代理是否处于活动状态剧本)。修改文件图标
如何以编程方式更改图标?只是为了这个文件,并不是所有的VBScripts!
您无法更改特定文件的图标。但是,您可以将特定快捷方式的图标更改为文件。
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"
。
我喜欢它!但是,我的代码每次运行时都会创建一个新的快捷方式。我如何选择现有的lnk? – user1375452
@ user1375452代码应该修改现有的快捷方式。但是,桌面显示“%USERPROFILE%\ Desktop”和“C:\ Users \ Public \ Desktop”的内容。如果快捷方式位于后者中,则需要使用“AllUsersDesktop”而不是“Desktop”。 –
作品!非常感谢!请注意,我必须将IconLocation编辑为“C:\ path \ to \ some.ico,0”;)或者它不会从一个ico切换到另一个 – user1375452
由于安斯加尔这是脚本 组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
对不起,米我最后的评论一塌糊涂! – user1375452