



Muitas vezes necessitamos que o nosso aplicativo seja executado ao
iniciar o Windows.
Para resolver esta situação, podemos salvar uma instrução
no registro do windows, indicando para executar o nosso programa.
Veja o Exemplo:
Obs: É necessário estar declarado Registry na seção uses.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | procedure RunOnStartup(sProgTitle, sCmdLine: string; bRunOnce: Boolean); var sKey: string; reg: TRegIniFile; begin if bRunOnce then sKey := 'Once' else sKey := ''; reg := TRegIniFile.Create(''); reg.RootKey := HKEY_LOCAL_MACHINE; reg.WriteString('Software\Microsoft\Windows\CurrentVersion\Run' + sKey + #0, sProgTitle, sCmdLine); reg.Free; end; |
Explicando os parâmetros…
sProgTitle
Titulo do programa. De um modo geral, esta poderia ser qualquer coisa que você quer.
sCmdLine
Este é o nome do caminho completo onde o programa executável se encontra.
bRunOnce
Defina este como verdadeiro se você deseja executar o programa apenas uma vez.
Exemplo de uso:
1 2 3 4 5 6 | procedure TForm1.Button1Click(Sender: TObject); begin RunOnStartup( Application.Title, Application.ExeName, False); end; |
Importante lembrar que o programa precisa estar rodando com permissão de administrador
para executar este código, caso contrário o Windows irá negar acesso.
Fonte: http://www.devmedia.com.br/inicializar-seu-programa-com-o-windows/24236
Você precisa fazer o login para publicar um comentário.
Gostaria de uma ajudinha!
O código acima funciona perfeitamente no meu programa, tanto no WinXP 32bits, quanto nas versões 32 e 64 bits do Win7.
O problema é: A chave foi devidamente criada, mas o programa não inicia junto com o Windows. =/
O Windows está logando em modo administrador, o programa está programado também com a propriedade de
“Executar como Administrador”.
Alguém tem uma ideia do que pode ser?
Em testes aqui o programa inicia depois de algum usuário fazer o login.