Executar aplicativo de “LocalAppData” na inicialização do Windows

1

Eu quero fazer um aplicativo, que está localizado na pasta% localappdata% (em um subcontratante dele), para ser executado na inicialização do Windows, quando estiver instalado para o usuário. Eu posso fazer isso se eu criar um valor de string sob a chave HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run e configurá-lo para 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 nele. Então eu tentei, em vez de colocar C:\Users\my_user\AppData\Local , usar %localappdata% no valor String, então parece %localappdata%\programs\My_App\My_App.exe" --app_id=12346 .

No entanto, o uso da referência de dados do aplicativo local não funciona - o aplicativo não é iniciado. 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 tenham meu aplicativo instalado. Então isso não seria uma boa escolha.

    
por Leonardo Alves Machado 16.06.2016 / 18:58

1 resposta

1

Os nomes %AppData% e %LocalAppData% contêm a palavra "Data", dando a você a dica de que esses diretórios devem ser não usados para armazenar arquivos executáveis. Por favor, não faça isso.

Eu mudaria o design da coisa toda.

  1. Coloque o aplicativo no local padrão dos aplicativos:

    • se tiver um instalador, use %ProgramFiles%\My_App\ ou %ProgramFiles(x86)%\My_App\
    • se for sem o instalador , eu usaria algo como C:\Tools\My_App\
  2. Inserção de entradas de execução automática na subárvore HKCU Registry (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 completo ao nome do usuário, caminhos de todos os diretórios do usuário, etc. Portanto, comece a fazer seus itens dependentes do usuário apenas depois que o aplicativo foi iniciado. Dessa forma, você não depende mais da localização do arquivo EXE ou da mágica semelhante.

por 18.06.2016 / 09:31