Файл, который вы хотите удалить, вероятно, еще не существует, If fso.FileExists(strShortcut) Then
маскирует этот факт.
Ярлык, который вы видите на рабочем столе, не обязательно должен находиться в папке Desktop
, которую вы приобретено с помощью WshShell.SpecialFolders("Desktop")
.
В другом месте элементы рабочего стола хранятся как расширение каталогов всех пользователей, но для изменения могут потребоваться права администратора, я не уверен, вам нужно попробовать .
Итак, в дополнение к SpecialFolders("Desktop")
, вам также следует рассмотреть каталог SpecialFolders("AllUsersDesktop")
.
Set Fso = CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
userDesktop = WshShell.SpecialFolders("Desktop")
publicDesktop = WshShell.SpecialFolders("AllUsersDesktop")
shortcutName = "Shortcut Name 2.0.lnk"
userShortcut = Fso.BuildPath(userDesktop, shortcutName)
publicShortcut = Fso.BuildPath(publicDesktop, shortcutName)
If Fso.FileExists(userShortcut) Then
Fso.DeleteFile userShortcut, True
MsgBox "User shortcut deleted."
End If
If Fso.FileExists(publicShortcut) Then
Fso.DeleteFile publicShortcut, True
MsgBox "Public shortcut deleted."
End If