Удалить папки в меню «Пуск» \ «Программы» - PullRequest
1 голос
/ 09 сентября 2011

Я занимаюсь разработкой приложения VB.NET, которое мы будем запускать при входе пользователя в нашу корпоративную сеть, которое будет настраивать среду пользователя, это будет включать меню «Пуск».

У меня есть метод, который пытается удалить все файлы и папки, расположенные в пользовательском меню Пуск \ Папка программ (C: \ Users {пользователь} \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs), нашей среде это Windows 7.

Private Function deleteFolderFilesAndSubFolders(ByVal location As DirectoryInfo, Optional ByVal exclude As String = "") As Boolean
  For Each f As DirectoryInfo In location.GetDirectories
    For Each i As FileInfo In f.GetFiles
      i.Delete()
    Next
    f.Delete()
  Next
End Function

Когда этот метод выполняется, я получаю исключение:

Access to the path 'Maintenance' is denied.

В папке «Программы» пользователей находятся 3 стандартных приложения: «Администрирование», «Обслуживание» и «Запуск». Я исключаю каталог автозагрузки, но хотел бы удалить эти два других.

Может ли кто-нибудь указать мне правильное направление, чтобы иметь возможность удалять эти папки, я не против, если они воссоздаются при каждом входе в систему, мой сценарий будет запускаться при каждом входе в систему и будет заново создавать меню запуска каждый раз .

1 Ответ

1 голос
/ 09 сентября 2011

Эти папки могут быть удалены, только если ваше приложение запущено в режиме администратора, потому что это важная часть пользовательских данных.

Таким образом, ваше приложение может выполнять только запросы в режиме администратора:

Как заставить приложение .NET запускаться от имени администратора?

Проверьте папку, для которой возбуждено исключение, и проверьте права на нее.

...