Estamos aqui novamente com uma dica utilizando-se somente do componente, sem sua ação visual:
Pingando com IdIcmpClient - Delphi 7
Siga as instruções abaixo:
// declare na seção uses:
IdBaseComponent, IdComponent, IdRawBase, IdRawClient, IdIcmpClient // Uses para IdIcmpClient
// caso queira publicar esta função não se esqueça de inclui-la na seção
// private ou na seção public, ou diretamente na parte de procedures e function da unit
// e em caso de um formulario visual, colocar a classe do formulário, ex:
//Function TForm1.Ping(HostName: String): boolean;
Function Ping(HostName: String): boolean;
var
i, Soma, BytesRecebidos : Integer;
PckEntregue : Array[1..3] of Integer;
ICMP : TIdIcmpClient;
begin
try
ICMP := TIdIcmpClient.Create(nil);
try
ICMP.Host := HostName;
ICMP.ReceiveTimeout := 500;
ICMP.Ping;
if ICMP.ReplyStatus.BytesReceived > 0 then
result := true
else
result := false;
except
result := false;
end;
finally
ICMP.Destroy;
end;
end;
Pingando com IdIcmpClient - Delphi 7
Siga as instruções abaixo:
// declare na seção uses:
IdBaseComponent, IdComponent, IdRawBase, IdRawClient, IdIcmpClient // Uses para IdIcmpClient
// caso queira publicar esta função não se esqueça de inclui-la na seção
// private ou na seção public, ou diretamente na parte de procedures e function da unit
// e em caso de um formulario visual, colocar a classe do formulário, ex:
//Function TForm1.Ping(HostName: String): boolean;
Function Ping(HostName: String): boolean;
var
i, Soma, BytesRecebidos : Integer;
PckEntregue : Array[1..3] of Integer;
ICMP : TIdIcmpClient;
begin
try
ICMP := TIdIcmpClient.Create(nil);
try
ICMP.Host := HostName;
ICMP.ReceiveTimeout := 500;
ICMP.Ping;
if ICMP.ReplyStatus.BytesReceived > 0 then
result := true
else
result := false;
except
result := false;
end;
finally
ICMP.Destroy;
end;
end;