Есть простой VBS скрипт, который добавляет ключ в реестр в ветке ...\CurrentVersion\Run и в папке автозагрузке создает ярлык на приложение, которое требуется запустить. Все пути правильные, все перепроверил по несколько раз, но автозагрузка именно нужного мне приложения (который тоже является скриптом, скомпилированным в .exe) не запускается. В ручном режиме все происходит нормально.
.exe запускается "скрытно", т.е показывается только процесс, однако при перезагрузке компа и его нет.
В чем может быть проблема?
А когда вы запускаете скрипт собственноручно, не вызывается сообщение UAC, что нужны админские права для запуска приложения? Не может ли быть дело в этом?
+а просто в папку "Автозагрузка" (не через реестр) вы пробовали, работает или нет?
Нет, окошка UAC не вызывается.
В папку "автозагрузка" ярлык тоже создается с помощью vbs-скрипта, т.е он там находится. Может быть просто что-то не догружается до момента инициализации скрипта?
Dim vOrg, objArgs, root, key, WshShell
root = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\"
KeyHP = "Program"
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.RegWrite root+keyHP,"C:\Program Files\Windows NT\start.exe"
Dim oShell
Dim oShortCut
set oShell = WScript.CreateObject ("WScript.Shell")
AllUsersStartup = oShell.SpecialFolders("AllUsersStartup")
Set oShortCut = oShell.CreateShortcut(AllUsersStartup & "\start.lnk")
oShortCut.TargetPath = "C:\Program Files\Windows NT\start.exe"
oShortCut.Save()
Вот часть скрипта. Для первоначального запуска цепочки событий таки приходится использовать UAC привелегии, для того чтобы вписать/копировать все в нужные места, однако потом для запуска самого exe прав никаких не требуется.