Iniciar com o WINDOWS
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
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
Curtidas 0
Respostas
Mayron Cachina
23/09/2007
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...
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;
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;
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;
GOSTEI 0
L_carlos
23/09/2007
Valeu Mayron. Eu usei o seu codigo que eu achei mais completo.
Luiz
Luiz
GOSTEI 0
Warfighter
23/09/2007
Mayron Cachina
Isso são 3 exemplos ou isso tudo faiz parte ?
Isso são 3 exemplos ou isso tudo faiz parte ?
GOSTEI 0
Mayron Cachina
23/09/2007
Warfighter, tudo faz parte...
uma procedure para cada coisa...
uma procedure para cada coisa...
GOSTEI 0
Warfighter
23/09/2007
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 ?
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 ?
GOSTEI 0
Mayron Cachina
23/09/2007
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
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
GOSTEI 0
Facc
23/09/2007
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
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
GOSTEI 0
Facc
23/09/2007
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
GOSTEI 0
Facc
23/09/2007
ninguem?
GOSTEI 0
Paullsoftware
23/09/2007
você pode verificar os direitos autorais do usuário, as vezes é isso tb...
eu uso essa função e funciona perfeitamente nos meus programas:
Modo de usar:
espero ter ajudado :wink:
eu uso essa função e funciona perfeitamente nos meus programas:
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:
IniciarComWindows(´Titulo do Programa´,´CaminhoCompleto_NomeDoPrograma.Exe´);
GOSTEI 0
Facc
23/09/2007
você pode verificar os direitos autorais do usuário, as vezes é isso tb...
Onde vejo isso?
GOSTEI 0
Paullsoftware
23/09/2007
[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:
GOSTEI 0
Facc
23/09/2007
[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...
GOSTEI 0
Paullsoftware
23/09/2007
Amigo, quando você me falou sobre o erro eu passei a testar em outro micros e percebi o erro no trecho::
então mudei para::
acrescentei um [b:0de8f3df4b]else[/b:0de8f3df4b] e o erro parou de ser apresentado! :wink:
espero que o seu tb funcione!!! :roll:
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::
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(´´);
espero que o seu tb funcione!!! :roll:
GOSTEI 0
Cyborg*
23/09/2007
não é mais facil copiar o programa para a pasta inicializar ! :shock:
T+
T+
GOSTEI 0
Facc
23/09/2007
[quote:acec2207eb=´cyborg*´]não é mais facil copiar o programa para a pasta inicializar ! :shock:
T+[/quote:acec2207eb]
Realmente é mais facil... porém usuários mais experientes podem apagar a chamada dessa pasta e o programa não irá mais funcionar... e outra... ele pode liberar para todas os pcs se resolver apagar o executavel...
agora o que é mais facil? deixar seu programa com essa brecha ou colocar no Registry do Windows, sendo que pode-se bloquear o usuário a mexer no Registry?
Mudando de assunto...
Nesse tópico vc achará todas as chamadas para os mais conhecidos browsers, com exceção do AvantBrowser
T+[/quote:acec2207eb]
Realmente é mais facil... porém usuários mais experientes podem apagar a chamada dessa pasta e o programa não irá mais funcionar... e outra... ele pode liberar para todas os pcs se resolver apagar o executavel...
agora o que é mais facil? deixar seu programa com essa brecha ou colocar no Registry do Windows, sendo que pode-se bloquear o usuário a mexer no Registry?
Mudando de assunto...
Nesse tópico vc achará todas as chamadas para os mais conhecidos browsers, com exceção do AvantBrowser
GOSTEI 0
Facc
23/09/2007
Amigo, quando você me falou sobre o erro eu passei a testar em outro micros e percebi o erro no trecho::
então mudei para::
acrescentei um [b:c90916efe4]else[/b:c90916efe4] e o erro parou de ser apresentado! :wink:
espero que o seu tb funcione!!! :roll:
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´);
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(´´);
Valeu, funcionou direito dessa vez...
Só mais uma dúvida... Como fazer pro programa iniciar somente no systemtray? já coloquei o componente JvTrayIcon, configurei tudo certo, mas ele insiste em aparecer no meio da tela...
GOSTEI 0
Paullsoftware
23/09/2007
No OnCreate do Form principal você faz:
Espero ter ajudado :wink:
o que eu quero é reverter a lista negra... fazer com que o programa só permita que navegue nos sites da lista, sabe como posso fazer? :?: :roll:
Application.ShowMainForm := False;
o que eu quero é reverter a lista negra... fazer com que o programa só permita que navegue nos sites da lista, sabe como posso fazer? :?: :roll:
GOSTEI 0
Cyborg*
23/09/2007
[quote:64253669fe=´cyborg*´]não é mais facil copiar o programa para a pasta inicializar ! :shock:
T+
Realmente é mais facil... porém usuários mais experientes podem apagar a chamada dessa pasta e o programa não irá mais funcionar... e outra... ele pode liberar para todas os pcs se resolver apagar o executavel...
agora o que é mais facil? deixar seu programa com essa brecha ou colocar no Registry do Windows, sendo que pode-se bloquear o usuário a mexer no Registry?
Mudando de assunto...
Nesse tópico vc achará todas as chamadas para os mais conhecidos browsers, com exceção do AvantBrowser[/quote:64253669fe]
Realmente você tem razão. agora sobre o avant browser vai ser dificil
funcionar porque não aparece o internal name :shock:
Mais sempre existe uma maneira, porém poucas pessoas usam esse browser, então seu sistema está praticamente completo 8)
Flw´s
GOSTEI 0
Facc
23/09/2007
No OnCreate do Form principal você faz:
Espero ter ajudado :wink:
o que eu quero é reverter a lista negra... fazer com que o programa só permita que navegue nos sites da lista, sabe como posso fazer? :?: :roll:
Application.ShowMainForm := False;
Valeu!! Funcionou... agora é a minha vez de te ajudar... vou fazer alguns teste e já te falo
GOSTEI 0
Paullsoftware
23/09/2007
Nada pow relaxa... estou tentando fazer aqui, inclusive já havia feito como você recomendou na MP mesmo assim não funcionou... valeu!!! :wink:
GOSTEI 0
Cyborg*
23/09/2007
Thanks :wink:
GOSTEI 0
Psycho
23/09/2007
você pode verificar os direitos autorais do usuário, as vezes é isso tb...
eu uso essa função e funciona perfeitamente nos meus programas:
Modo de usar:
espero ter ajudado :wink:
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;
IniciarComWindows(´Titulo do Programa´,´CaminhoCompleto_NomeDoPrograma.Exe´);
Valeu mano!
só uma pergunta, isso serve tanto pro XP como no vista certo?
e sobre o titulo... isso não é desnecessario?
Até mais
GOSTEI 0