1

Я хочу сделать приложение, которое находится в папке% localappdata% (в его подчиненном), для запуска при запуске Windows, когда оно установлено для пользователя. Я могу сделать это, если я создаю строковое значение под ключом HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run и задаю для него C:\Users\my_user\AppData\Local\programs\My_App\My_App.exe" --app_id=12346 .

Однако я не хочу помещать в него прямую ссылку на моего пользователя. Поэтому я попытался вместо C:\Users\my_user\AppData\Local использовать %localappdata% в значении String, чтобы оно выглядело как %localappdata%\programs\My_App\My_App.exe" --app_id=12346

Однако использование ссылки на данные локального приложения не работает - приложение не запускается. Интересно, есть ли способ использовать ссылку на% LocalAppData% внутри раздела реестра - возможно, у меня есть синтаксическая ошибка?

Не могли бы вы помочь мне с этим?

Я уже думал о создании bat-файла для вызова моего приложения и поместил его в C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup , но он будет работать для всех пользователей, и я не могу гарантировать, что все пользователи будут мое приложение установлено. Так что это не будет хорошим выбором.

1 ответ1

1

Имена %AppData% и %LocalAppData% содержат слово "Данные", что подсказывает вам, что эти каталоги не следует использовать для хранения исполняемых файлов. Пожалуйста, не делай этого.

Я бы изменил дизайн всей вещи.

  1. Поместите приложение в стандартное расположение для приложений:

    • если у него есть установщик, используйте %ProgramFiles%\My_App\ или %ProgramFiles(x86)%\My_App\
    • если это происходит без установщика, я бы использовал что-то вроде C:\Tools\My_App\
  2. Вставьте записи автозапуска либо в поддерево реестра HKCU (для отдельного пользователя), либо в поддерево HKLM (для локального компьютера = все пользователи)

  3. Когда приложение запускается, оно имеет полный доступ к имени пользователя, путям всех пользовательских каталогов и т.д. Так что начинайте выполнять свои пользовательские функции только после запуска приложения. Таким образом, вы больше не зависите от расположения файла EXE или подобной магии.

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