Я не использую windows7 (возможно, скоро получит проверку на бета-версии), но я думаю, что правильное место всегда будет лучше брать из реестра, поскольку локализованы версии Windows. Моя собственная версия C: \ ProgramData \ Microsoft \ Windows \ Меню Пуск \ Программы \ Автозагрузка здесь больше похожа на "C: \ Documents and Settings \ Все пользователи \ Меню Démarrer \ Programs \ Démarrage" (из XP, конечно)
-10 для программистов, использующих жестко закодированные имена каталогов (да, некоторые установщики будут создавать каталоги на английском / другом языке при установке).
-1 для локализации имен каталогов Microsoft ...
В любом случае вот фрагмент для этого, действительный для XP по крайней мере:
commonstartup.cmd
@echo off
for /F "tokens=3 delims= " %%k in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Common Startup"^| findstr /i /c:"Common Startup"') do set StartUp=%%k
echo StartUp="%StartUp%"
___ Примечания _____
1: Поскольку reg.exe из Windows2000 и XP имеют разные командные аргументы, возможно, W7 тоже изменился, поэтому протестируйте его перед установкой и забудьте .
2: Чтобы получить список всех системных каталогов, введите команду: reg query "HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Shell Folders" и прочитайте строки , Возможно, вы захотите заменить «Общий запуск» на что-то другое, если с W7 все по-другому.
3: В HKEY_CURRENT_USER есть также личный / пользовательский список, если вы хотите, чтобы его могли использовать только некоторые пользователи.