Fórum Iniciar com o WINDOWS #346499

23/09/2007

0

Olá,

Achei o codigo abaixo na net para que meu programa inicie junto com o Windows. Minha duvida é em que lugar devo colocar o nome do meu programa nesse codigo? Obrigado.

Procedure TForm1.FormCreate(Sender: TObject);
Var
s,s2:string;

Begin
Reg:=TRegIniFile.Create(\´LloydSoft\´);
{HKEY_USERS\\.DEFAULT\\Software\\Microsoft\\Windows\\CurrentVersion\\Run}
S:=ExtractFileDir(Application.ExeName);
S2:=ExtractFileName(Application.ExeName);
S:=S+\´\\\´+S2;
reg.RootKey:=HKEY_USERS;
reg.Openkey (\´\\.DEFAULT\\Software\\Microsoft\\Windows\\CurrentVersion\´,false);
reg.WriteString(\´Run\´, \´Logo\´, s);
Button1.click;
End;

Luiz


L_carlos

L_carlos

Responder

Posts

23/09/2007

Mayron Cachina

1
reg.WriteString(\´Run\´, \´Logo\´, s);


se vc so quer modar o nome no registro muda ai onde tem ´LOGO´...

olha eu uso o TRegistry e n o TRegIniFile...
vai ai o codigo se quizer estudar...

1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.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;


1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.ApagaRegistro(Raiz: HKEY; Chave, Valor: string);
var
  Registro: TRegistry;
begin
  Registro := TRegistry.Create(KEY_WRITE); // Chama o construtor do objeto
  Registro.RootKey := Raiz;
  Registro.OpenKey(Chave, True); //Cria a chave
  Registro.DeleteValue(Valor); //Grava o endereço da sua aplicação no Registro
  Registro.CloseKey; // Fecha a chave e o objeto
  Registro.Free;
end;


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  try
    GravaRegistro(HKEY_LOCAL_MACHINE, ´Software\Microsoft\Windows\CurrentVersion\Run´,
      ´IniciarPrograma´, ExtractFilePath(Application.ExeName) + ´TesteRegistro.exe´);
    MessageDlg(´Registro gravado com sucesso!´, mtInformation, [mbOk], 0);
  except
    MessageDlg(´Erro ao gravar registro!´, mtInformation, [mbOk], 0);
  end;
end;
 
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  try
    ApagaRegistro(HKEY_LOCAL_MACHINE, ´Software\Microsoft\Windows\CurrentVersion\Run´,
      ´IniciarPrograma´);
    MessageDlg(´Registro apagado com sucesso!´, mtInformation, [mbOk], 0);
  except
    MessageDlg(´Erro ao apagar registro!´, mtInformation, [mbOk], 0);
  end;
end;



Responder

Gostei + 0

24/09/2007

L_carlos

Valeu Mayron. Eu usei o seu codigo que eu achei mais completo.

Luiz


Responder

Gostei + 0

15/10/2007

Warfighter

Mayron Cachina

Isso são 3 exemplos ou isso tudo faiz parte ?


Responder

Gostei + 0

15/10/2007

Mayron Cachina

Warfighter, tudo faz parte...
uma procedure para cada coisa...


Responder

Gostei + 0

15/10/2007

Warfighter

Eu não sei onde coloco esses códigos :cry:

Estou iniciando em delphi não estou conseguindo desifrar isso :(

O que você me acomselham a fazer parae começar desifrar a linguagem Object Pascal ?


Responder

Gostei + 0

15/10/2007

Mayron Cachina

Olha.. eh melhor vc ir da uma olhadinha em um livro ou tutoriais de Delphi...

bem tem o codigo do BitBtn1Click, aquele é quando vc clica 2 vezes no botao...
os outros a cima sao procedures...
ai vc tem q criar as unidades.. ja eh mais complexo...

vc pode começar vendo esse material...
http://www.apostilando.com/download.php?cod=2493&categoria=Delphi

qualquer duvida pode postar :D


Responder

Gostei + 0

06/03/2008

Facc

Revivendo o tópico...

Fiz essa procedure e criou a chave corretamente... mas qndo eu ligo o computador, dá violação de endereço... O que pode ser? Se eu rodo o programa normalmente (dando 2 cliques) não dá esse erro, mas se incluo ele pra iniciar automatico começa a dar esse erro.
O programa é simples, ele apenas fica ´monitorando´ a internet, se o usuário acessar alguma página invalida, cria um log de acesso.

Criei com delphi2006


Responder

Gostei + 0

06/03/2008

Facc

Revivendo o tópico... Fiz essa procedure e criou a chave corretamente... mas qndo eu ligo o computador, dá violação de endereço... O que pode ser? Se eu rodo o programa normalmente (dando 2 cliques) não dá esse erro, mas se incluo ele pra iniciar automatico começa a dar esse erro. O programa é simples, ele apenas fica ´monitorando´ a internet, se o usuário acessar alguma página invalida, cria um log de acesso. Criei com delphi2006



isso só acontece com a maquina cliente, sem delphi instalado


Responder

Gostei + 0

20/03/2008

Facc

ninguem?


Responder

Gostei + 0

20/03/2008

Paullsoftware

você pode verificar os direitos autorais do usuário, as vezes é isso tb...
eu uso essa função e funciona perfeitamente nos meus programas:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure IniciarComWindows(Titulo,CaminhoPrograma:String);
var
Reg : TRegistry;
begin
 Reg := TRegistry.Create;
  try
   with Reg do
    begin
     RootKey := HKEY_LOCAL_MACHINE;
     OpenKey(´\SOFTWARE\Microsoft\Windows\CurrentVersion\Run´,True);
     WriteString(Titulo,CaminhoPrograma);
     CloseKey;
    end;
  finally
   Reg.CloseKey;
  end;
end;

Modo de usar:
1
IniciarComWindows(´Titulo do Programa´,´CaminhoCompleto_NomeDoPrograma.Exe´);
espero ter ajudado :wink:


Responder

Gostei + 0

20/03/2008

Facc

você pode verificar os direitos autorais do usuário, as vezes é isso tb...


Onde vejo isso?


Responder

Gostei + 0

21/03/2008

Paullsoftware

[quote:b35b547166]você pode verificar os direitos autorais do usuário, as vezes é isso tb...


Onde vejo isso?[/quote:b35b547166]Olá Fábio, normalmente os usuários que têm acesso ao registro do windows e podem efeturar qualquer alteração nos arquivos de sistema são usuários Administradores, para acessar o [b:b35b547166]Gerenciador de Contas de Usuários[/b:b35b547166] do Windows, você pode ir em: Iniciar>>Executar>>digitar: [b:b35b547166]control userpassowrds2[/b:b35b547166] Enter se for windows xp, ou painel de controle Contas de Usuários se for windows Server... se no seu computador funciona, adicione um [i:b35b547166][b:b35b547166]Usuário Avançado[/b:b35b547166][/i:b35b547166] e teste o seu aplicativo no seu próprio windows usando esse usuário... você também pode mudar algumas opções de permissões dos usuários usando o [b:b35b547166]secpol.msc /s[/b:b35b547166] (Configurações Locais de Segurança) também através do Executar e procurar por previlérgios ou bloqueios do usuário... Espero ter ajudado! :wink:


Responder

Gostei + 0

25/03/2008

Facc

[quote:f47ef5fe92=´Facc´][quote:f47ef5fe92]você pode verificar os direitos autorais do usuário, as vezes é isso tb...


Onde vejo isso?[/quote:f47ef5fe92]Olá Fábio, normalmente os usuários que têm acesso ao registro do windows e podem efeturar qualquer alteração nos arquivos de sistema são usuários Administradores, para acessar o [b:f47ef5fe92]Gerenciador de Contas de Usuários[/b:f47ef5fe92] do Windows, você pode ir em: Iniciar>>Executar>>digitar: [b:f47ef5fe92]control userpassowrds2[/b:f47ef5fe92] Enter se for windows xp, ou painel de controle Contas de Usuários se for windows Server... se no seu computador funciona, adicione um [i:f47ef5fe92][b:f47ef5fe92]Usuário Avançado[/b:f47ef5fe92][/i:f47ef5fe92] e teste o seu aplicativo no seu próprio windows usando esse usuário... você também pode mudar algumas opções de permissões dos usuários usando o [b:f47ef5fe92]secpol.msc /s[/b:f47ef5fe92] (Configurações Locais de Segurança) também através do Executar e procurar por previlérgios ou bloqueios do usuário... Espero ter ajudado! :wink:[/quote:f47ef5fe92]


paullsoftware, fiz isso que vc me disse e mesmo assim deu erro, mesmo com usuário administrador dá erro de endereço de memória... Não sei o que pode ser, é o mesmo fonte que eu te enviei... só funciona com o Delphi instalado...


Responder

Gostei + 0

25/03/2008

Paullsoftware

Amigo, quando você me falou sobre o erro eu passei a testar em outro micros e percebi o erro no trecho::
1
2
3
4
5
6
7
8
9
if SetLink(´IExplore´, ´WWW_GetWindowInfo´) or
   SetLink(´Netscape´, ´WWW_GetWindowInfo´) or
   SetLink(´Mosaic´, ´WWW_GetWindowInfo´) or
   SetLink(´Netscp6´, ´WWW_GetWindowInfo´) or
   SetLink(´Opera´, ´WWW_GetWindowInfo´) or
   SetLink(´Mozilla´, ´WWW_GetWindowInfo´) or
   SetLink(´Avant´, ´WWW_GetWindowInfo´) or
   SetLink(´Firefox´, ´WWW_GetWindowInfo´) then
  temp := RequestData(´0xFFFFFFFF´);

então mudei para::
1
2
3
4
5
6
7
8
9
10
if SetLink(´IExplore´, ´WWW_GetWindowInfo´) or
   SetLink(´Netscape´, ´WWW_GetWindowInfo´) or
   SetLink(´Mosaic´, ´WWW_GetWindowInfo´) or
   SetLink(´Netscp6´, ´WWW_GetWindowInfo´) or
   SetLink(´Opera´, ´WWW_GetWindowInfo´) or
   SetLink(´Mozilla´, ´WWW_GetWindowInfo´) or
   SetLink(´Avant´, ´WWW_GetWindowInfo´) or
   SetLink(´Firefox´, ´WWW_GetWindowInfo´) then
  temp := RequestData(´0xFFFFFFFF´)
else temp := RequestData(´´);
acrescentei um [b:0de8f3df4b]else[/b:0de8f3df4b] e o erro parou de ser apresentado! :wink:

espero que o seu tb funcione!!! :roll:


Responder

Gostei + 0

25/03/2008

Cyborg*

não é mais facil copiar o programa para a pasta inicializar ! :shock:

T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar