3

Как программно добавить записи в меню «Пуск» Windows 7 для всех пользователей? Например, мне может понадобиться добавить папку MyApps, содержащую ярлык для myapp.exe и URL-адрес для www.myapp.com.

В идеале я хотел бы сделать это в пакетном файле, но я также возьму VBScript или PowerShell, пожалуйста.

2 ответа2

2

Чтобы добавить записи в раздел «Все программы», просто добавьте ярлык в папку% AllUserProfile%\Microsoft\Start Menu\Programs.

Вы можете использовать объект SpecialFolder в VBScript.

Не уверен, как это сделать в Powershell, но это в Javascript:

var shell = WScript.CreateObject("WScript.Shell");
var allUserProfilePath = shell.SpecialFolders("CommonPrograms");
var myShortcut = shell.CreateShortcut(allUserProfilePath + "\\myShortcut.lnk");
myShortcut.TargetPath = "c:\\My Programs Path";
myShortcut.WorkingDirectory = "c:\\Blah";
myShortcut.WindowStyle = 4;
myShortcut.Save();

Перевод на VB прост

Dim shell 
Set shell = WScript.CreateObject("WScript.Shell")
Dim allUserProfilePath 
Set allUserProfilePath = shell.SpecialFolders("CommonPrograms")
Dim myShortcut 
Set myShortcut = shell.CreateShortcut(allUserProfilePath + "\myShortcut.lnk")
myShortcut.TargetPath = "c:\My Programs Path"
myShortcut.WorkingDirectory = "c:\Blah"
myShortcut.WindowStyle = 4
myShortcut.Save()
1

В VB и PS есть функции для назначения системных папок, таких как Рабочий стол всех пользователей, Меню запуска всех пользователей и т.д.

В VBscript вы захотите использовать SpecialFolders, а в PowerShell - переменные среды.

Ниже приведен фрагмент кода, который я использую для вызова функции DeleteFile и передачи ей местоположения файла в AllUsersDesktop:

DeleteFile (objShell.SpecialFolders ("AllUsersDesktop") & "\Microsoft Word 2010.lnk")

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .