Hi,
Also da seht ihr was passiert.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i : Integer;
begin
Form1.BorderStyle := bsSingle;// Damit man nicht während dem Scanvorgang rumschieben kann
ListBox1.Clear;
Progressbar1.Position := 0;
Button2.Enabled := true;
Button1.Caption := 'Working...';
Button1.Enabled := false;
Netz := GetNetz;
for i:= 1 to 255 do begin
try
if Beenden then Exit; // wenn man auf das X klick um zu beenden dann wird Beende = true gesetzt
Ping.Host := '192.168.' + IntToStr(Netz) + '.' + IntToStr(i);
Ping.Ping();
except
end;
end;
// Wieder alles setzen wie es vorher war
Button1.Enabled := true;
Button2.Enabled := false;
Form1.BorderStyle := bsSizeable;
Button1.Caption := 'Scan IPs';
end;
Wobei ich gestehen muss das ich folgendes aus der
DP "geklaut" und etwas
umgeschrieben hab:
Delphi-Quellcode:
function GetNetz: Byte;
var
rSockVer : Word;
aWSAData : TWSAData;
szHostName : array[0..255] of Char;
pHE : PHostEnt;
begin
Result:= 0;
rSockVer:=MakeWord(1, 1);
WSAStartup(rSockVer, aWSAData );
try
FillChar(szHostName, SizeOf(szHostName), #0);
GetHostName(szHostName, SizeOf(szHostName));
pHE:=GetHostByName(szHostName);
if (pHE<>nil) then with pHE^ do begin
Result := Byte(h_addr^[2]);
end;
finally
WSACleanup;
end;
end;
Ich denke das sollte die meisten Fragen beantworten. (Ich hoffs^^)
Gruß
Michael