Fazer pelo DELPHI programa Iniciar com o WINDOWS 7
Olá,
Estou usando o codigo abaixo para fazer com que o programa inicie com o WINDOWS, ele funciona no WINDOWS XP mas no WINDOWS 7 dá erro e o programa não inicia com o WINDOWS 7. Alguem sabe como fazer pelo DELPHI para que o programa inicie com o WINDOWS 7?
Código:
Grato
Luiz Carlos
Estou usando o codigo abaixo para fazer com que o programa inicie com o WINDOWS, ele funciona no WINDOWS XP mas no WINDOWS 7 dá erro e o programa não inicia com o WINDOWS 7. Alguem sabe como fazer pelo DELPHI para que o programa inicie com o WINDOWS 7?
Código:
procedure GravaRegistro(Raiz: HKEY; Chave, Valor, Endereco: string);
var
Registro: TRegistry;
begin
Registro := TRegistry.Create(KEY_WRITE); // Chama o construtor do objeto
Registro.RootKey := Raiz; //Define a chave raiz
Registro.OpenKey(Chave, True); //Cria a chave
Registro.WriteString(Valor, + Endereco + ); //Grava o endereço da sua aplicação no Registro
Registro.CloseKey; // Fecha a chave e o objeto
Registro.Free;
end;
procedure TfrmINICIAR.btnINICIARClick(Sender: TObject);
begin
try
GravaRegistro(HKEY_CURRENT_USER, Software\\Microsoft\\Windows\\CurrentVersion\\Run,
IniciarPrograma, ExtractFilePath(Application.ExeName) + agdatks.exe);
MessageDlg(A Agenda TKS iniciará com o Windows!, mtInformation, [mbOk], 0);
except
MessageDlg(Erro ao gravar registro!, mtInformation, [mbOk], 0);
end;
frminiciar.Close ;
end; Grato
Luiz Carlos
Luiz Carlos
Curtidas 0
Respostas
Luiz Carlos
05/07/2012
Alguem saber como fazer pelo DELPHI para que o programa inicie junto com o WINDOWS 7 ?
Grato
Luiz Carlos
Grato
Luiz Carlos
GOSTEI 0
Bruno Leandro
05/07/2012
Ola Luiz ja tive problema no windows 7 64bits, talvez seja o caso
substitua
Registro := TRegistry.Create(KEY_WRITE);
por
Registro := TRegistry.Create(KEY_WRITE OR KEY_WOW64_64KEY);
substitua
Registro := TRegistry.Create(KEY_WRITE);
por
Registro := TRegistry.Create(KEY_WRITE OR KEY_WOW64_64KEY);
GOSTEI 0
Deivison Melo
05/07/2012
Caso não conseguir com o código que foi orientado, por favor, postar informando para ajudarmos vc da melhor forma possível!
forte abraço!
forte abraço!
GOSTEI 0
Vinicius Berto
05/07/2012
Tentou executar a aplicação como Administrador???
GOSTEI 0
Itamar Souza
05/07/2012
Bom dia
Você pode criar um serviço: File + New + other (service)
A programação é igual, ele vai criar Data Module do tipo TService.
vai roda como serviço do windows.
Veja se tem alguma dúvida, é marque a resposta.
att
Você pode criar um serviço: File + New + other (service)
A programação é igual, ele vai criar Data Module do tipo TService.
vai roda como serviço do windows.
Veja se tem alguma dúvida, é marque a resposta.
att
GOSTEI 0
Rogerio Silvano
05/07/2012
Segue um exemplo de como realizar.:
Nos parâmetros estou passando o nome da chave que eu quero criar mais o nome do programa que deve ser iniciado com windows!
procedure TfrmAthena.ForcaAtualizaMenu;
begin
GravaRegistro(HKEY_CURRENT_USER,'\\Software\\Microsoft\\Windows\\CurrentVersion\\Run',
'ArbameAtualizaMenu', 'G:\\ATHENA\\UPDATE\\' + 'atualiza.exe');
end;
procedure GravaRegistro(Raiz: HKEY; Chave, Nome, Dados: string);
var
Registro: TRegistry;
begin
Registro := TRegistry.Create(KEY_READ); // Chama o construtor do objeto
Registro.RootKey := Raiz; //Define a chave raiz
Registro.Access := KEY_WRITE;
if Registro.OpenKey(Chave, True) then //Cria a chave
begin
if not Registro.ValueExists(Nome) then
begin
Registro.WriteString(Nome, Dados);
end;
end;
Registro.CloseKey; // Fecha a chave e o objeto
Registro.Free;
end;
Nos parâmetros estou passando o nome da chave que eu quero criar mais o nome do programa que deve ser iniciado com windows!
procedure TfrmAthena.ForcaAtualizaMenu;
begin
GravaRegistro(HKEY_CURRENT_USER,'\\Software\\Microsoft\\Windows\\CurrentVersion\\Run',
'ArbameAtualizaMenu', 'G:\\ATHENA\\UPDATE\\' + 'atualiza.exe');
end;
procedure GravaRegistro(Raiz: HKEY; Chave, Nome, Dados: string);
var
Registro: TRegistry;
begin
Registro := TRegistry.Create(KEY_READ); // Chama o construtor do objeto
Registro.RootKey := Raiz; //Define a chave raiz
Registro.Access := KEY_WRITE;
if Registro.OpenKey(Chave, True) then //Cria a chave
begin
if not Registro.ValueExists(Nome) then
begin
Registro.WriteString(Nome, Dados);
end;
end;
Registro.CloseKey; // Fecha a chave e o objeto
Registro.Free;
end;
GOSTEI 0