Iniciando meu aplicativo usando o método Windows RunOnce

Iniciando meu aplicativo usando o método Windows RunOnce

Estou executando o instalador do meu aplicativo na inicialização do Windows 7, seguido de uma reinicialização do sistema solicitada pelo instalador. Agora, para a abordagem, estou escrevendo para a chave de registro RunOnce para que meu instalador seja executado apenas uma vez e a entrada seja excluída automaticamente posteriormente.

Agora, a abordagem acima está funcionando bem, exceto por uma coisa: não consigo mostrar a área de trabalho por esse método até que a instalação seja concluída e ela seja fechada.

Acho que esse comportamento é padrão para o método RunOnce. Queria confirmar isso e, se necessário, posso usar a tecla Runem vez disso RunOncee excluir a entrada de lá assim que meu trabalho estiver concluído. Existe alguma outra maneira de brincar com RunOncea chave?

Responder1

A resposta é que preciso usar o método RunOnce do HKCU em vez do HKLM. A ordem em que o Windows executa as entradas de inicialização é:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices

<Logon Prompt>

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

Pasta de inicialização

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce

Referência:INFO: Run, RunOnce, RunServices, RunServicesOnce e inicialização

informação relacionada