Einzelnen Beitrag anzeigen

Thorti

Registriert seit: 13. Nov 2010
6 Beiträge
 
#3

AW: EIdSocketError

  Alt 3. Jan 2011, 18:11
Hallo Dirk,

Den Forum Eintrag zum Socket habe ich schon gelesen. Leider bringt der mir nicht viel bei meinem Problem... auch mit den Exceptions klappt es nicht, wenn die Internetverbindung nicht besteht.
Kann aber auch gut sein, dass ich da was falsch gemacht habe...
Noch eine Idee?

begin

ProgDir:=GetCurrentDir();
WPfad:= ProgDir;
IdHTTP1:=TIdHTTP.Create; // Hier wird ein Element vom Typ IdHTTP erzeugt
configuration:=TIniFile.Create(ProgDir+'\config.in i');
LoN:=configuration.readstring('Serverdaten','Usern ame',''); //Einlesen von Username und Passwort
LoP:=configuration.readstring('Serverdaten','Passw ord','');

Repeat

ipaddr:=''; // Hiermit wird sichergestellt, dass ipaddr nicht vorher
// beschrieben wurden
try
ipseitestr:=IdHTTP1.Get('http://www.wieistmeineip.de/');
// der Quelltext von "www.wieistmeineip.de" wird in ein string geschrieben
// Dieser String wird im folgenden nach Anfangs- und Endzeichen durchsucht.
anfang:=ansipos('"ip">',IdHTTP1.Get('http://www.wieistmeineip.de/'))+5;
ende:=ansipos('</h1>',IdHTTP1.Get('http://www.wieistmeineip.de/'))-1;
Uhrzeit:=timetostr(gettime); //Ausgabe der Uhrzeit
Datum:=datetostr(date()); // Ausgabe des Datums
for i:=0 to (ende-anfang) do // Schreiben der IP-Adresse
ipaddr:=ipaddr+ipseitestr[anfang+i];
// Hier wird eine INI Datei erstellt.
ini:=TIniFile.Create(ProgDir+'\AktuelleIP.txt');
try
ini.writestring('MessrechnerIP','Datum',Datum);
ini.writestring('MessrechnerIP','Uhrzeit',Uhrzeit) ;
ini.writestring('MessrechnerIP','Adresse',ipaddr);

finally
ini.free;

FillChar(SEInfo, SizeOf(SEInfo), 0); //Auffüllen von SEInfo und dessen Größe mit 0
SEInfo.cbSize:=SizeOf(TShellExecuteInfo);
with SEInfo do
begin
fMask:=SEE_MASK_NOCLOSEPROCESS;
wnd:=Application.Handle;
lpVerb:=PChar('open');
lpFile:=PChar(ProgDir+'\psftp.exe');
lpParameters:=PChar('-l '+LoN+' -pw '+LoP+' server -batch -b PutDatei.txt');
lpDirectory:=PChar(WPfad);
nShow:=SW_HIDE;
end;
ShellExecuteEx(@SEInfo);
end;
sleep(60000);
except on
E: EIdException do begin
sleep(60000);
end;
on E: Exception do begin
sleep(60000);
end;
end;
Until False;
end.
__________________________________________________ _________
Danke

Gruß Thorsten
  Mit Zitat antworten Zitat