Execute o aplicativo de "LocalAppData" na inicialização do Windows

Execute o aplicativo de "LocalAppData" na inicialização do Windows

Quero fazer um aplicativo, que está localizado na pasta% localappdata% (em uma subpasta dela), para rodar na inicialização do Windows, quando for instalado para o usuário. Posso fazer isso se criar um valor de string na chave HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Rune defini-lo como C:\Users\my_user\AppData\Local\programs\My_App\My_App.exe" --app_id=12346.

No entanto, não quero colocar uma referência direta ao meu usuário. Então tentei, ao invés de colocar C:\Users\my_user\AppData\Local, usar %localappdata%no valor da String, para que fique assim %localappdata%\programs\My_App\My_App.exe" --app_id=12346.

No entanto, usar a referência de dados de aplicativos locais não funciona - o aplicativo não inicia. Gostaria de saber se existe uma maneira de usar uma referência a% LocalAppData% dentro de uma chave de registro - talvez eu tenha um erro de sintaxe?

Você poderia me ajudar com isso?

Já pensei em criar um arquivo bat para chamar meu aplicativo e colocá-lo em C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup, mas ele seria executado para todos os usuários e não posso garantir que todos os usuários terão meu aplicativo instalado. Então essa não seria uma boa escolha.

Responder1

Nomes %AppData%e %LocalAppData%contêm a palavra "Dados", dando a dica de que esses diretórios devemnãoser usado para armazenar arquivos executáveis. Por favor, não faça isso.

Eu mudaria o design de tudo.

  1. Coloque o aplicativo em local padrão para aplicativos:

    • se tiver instalador, use %ProgramFiles%\My_App\ou%ProgramFiles(x86)%\My_App\
    • se viersem instalador, eu usaria algo comoC:\Tools\My_App\
  2. Insira entradas de execução automática na subárvore do Registro HKCU (para usuário individual) ou na subárvore HKLM (para máquina local = todos os usuários)

  3. Quando o aplicativo é iniciado, ele tem acesso total ao nome do usuário, caminhos de todos os diretórios de usuários, etc.comece a fazer as coisas que dependem do usuário somente depois que o aplicativo for iniciado.Dessa forma, você não depende mais da localização do arquivo EXE ou de magia semelhante.

Responder2

O Windows 10 entende %LocalAppData%suas Runentradas RunOncede registro - estou usando-as com sucesso em um GPO.

Não se esqueça de garantir que, se o caminho do executável contiver espaços, as aspas duplas vão em ambas as extremidades da string. (Embora seja quatro anos tarde demais para você, talvez um dos motivos pelos quais sua tentativa não funcionou é que o que você nos mostrou tem apenas aspas duplas em vez de um par.)

informação relacionada