AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi IcmpSendEcho unterbricht mein Programm?
Thema durchsuchen
Ansicht
Themen-Optionen

IcmpSendEcho unterbricht mein Programm?

Ein Thema von alfold · begonnen am 8. Apr 2016 · letzter Beitrag vom 10. Apr 2016
 
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: IcmpSendEcho unterbricht mein Programm?

  Alt 8. Apr 2016, 13:16
Ich hoffe es wird nicht peinlich.
im Main
Delphi-Quellcode:
if UncPath <> 'then
begin
        tmpPath:= ExtractFileName(ExtractFiledir(ExtractFiledir(ExcludeTrailingPathDelimiter(UncPath))));
        if tmpPath <> 'then
        begin
           PingThread:= TPingThread.Create(tmpPath);
           PingHndl:= PingThread.Handle;
           PingThread.FreeOnTerminate := False;
           PingThread.Resume;
        end;

end;
und hier der Thread
Delphi-Quellcode:
unit PingThread;

interface
uses
  Windows, Classes, SysUtils, PingTest;

type
  TPingThread = class(TThread)
  private

    afHostName: string;
    aPing: Boolean;

    procedure UpdateStaus;
    procedure Finished;
    procedure Abort;

  protected
      procedure Execute; override;
      procedure GetPing();
  public
    constructor Create(FHostname: string);

  end;

implementation

uses
   MxMain;

constructor TPingThread.Create(fHostname: string);
begin
        inherited create(False);
        priority:= tpTimeCritical;
        FreeonTerminate:= False;
        afHostName:= FHostname;
       
end;

procedure TPingThread.Abort;
begin
    MxPlayer.Abort;
end;

procedure TPingThread.Execute;
begin
   while not Terminated do
   begin
        GetPing();
        Sleep(1000);
   end;
end;

procedure TPingThread.Finished;
begin
    MxPlayer.Finished;
end;

procedure TPingThread.UpdateStaus;
begin
    if self.Terminated then
    begin
        Synchronize(Abort);
        Exit;
    end;
    MxPlayer.UpdateStatus(aPing);
end;

procedure TPingThread.GetPing();
begin
    if Self.Terminated then
    begin
        Synchronize(Abort);
        Exit;
    end;
    aPing:= Ping(afHostName);
    Synchronize(UpdateStaus);
end;

end.
Schaun wir mal wo ich mist gebaut habe!

Gruß alfold
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz