Ao se conectar executar determinado código ?

Delphi

15/11/2007

Como faço para quando o computador se conectar o meu programa executar determinado código ?


Warfighter

Warfighter

Curtidas 0

Respostas

Mayron Cachina

Mayron Cachina

15/11/2007

você tem 2 opções, uma é colocar um atalho no INICIAR e outro é direto no registro do windows, que é o mais indicado...
use as procedures:

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;



agora as ações dos botões:
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
Warfighter

Warfighter

15/11/2007

Não era isso que eu queria 8) mais é uma boa dica :wink:

Eu queria saber o código que quando o programa ver que o pc se conecto na internet ele fazer um comando ?

[b:26524d9588]A pessoa se conecta e ele faiz o determinado código [/b:26524d9588]


GOSTEI 0
Mayron Cachina

Mayron Cachina

15/11/2007

heheheh foi mal :P

uses
WinInet
...
function DetectarInternet: Boolean;
var
Flags : dword;
begin
Result := InternetGetConnecte dState(@Flags, 0);
end;

ou
//Verifica a existe conexão à internet. //Uses Wininet
Function IsConnectedOnIntern et:Boolean;
begin
Result := InternetCheckConnec tion( ´http://www.drdsiste mas.com
<http://www.drdsiste mas.com>´, 1, 0);

end;



GOSTEI 0
Warfighter

Warfighter

15/11/2007

Em qual dos events é aconselhavel usar ?


GOSTEI 0
Mayron Cachina

Mayron Cachina

15/11/2007

Bem depende do que vc quer fazer...
no caso vc quer q seja assim que abrir o programa não é???
então coloca no OnCreate do form... se n der certo coloca no OnShow....


GOSTEI 0
Warfighter

Warfighter

15/11/2007

[quote:39c856f67b=´Mayron Cachina´]Bem depende do que vc quer fazer...
no caso vc quer q seja assim que abrir o programa não é???
então coloca no OnCreate do form... se n der certo coloca no OnShow....[/quote:39c856f67b]

E onde eu coloco o comando a ser executado ?


GOSTEI 0
Mayron Cachina

Mayron Cachina

15/11/2007

vc declara a função...
por exemplo:

unit UTrackVer;
interface
uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;

type

  TfrmTrackVer = class(TfrmTrackGen)
  function DetectarInternet: Boolean;

  private

    { Private declarations }

  public

    { Public declarations }

  end;



var

  frmForm1: Tform1;



implementation



uses 
WinInet;

{$R *.dfm}



function TForm1.DetectarInternet: Boolean;
var
Flags : dword;
begin
Result := InternetGetConnecte dState(@Flags, 0);
end;

end.



GOSTEI 0
POSTAR