AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi fritz.box Anruferliste
Thema durchsuchen
Ansicht
Themen-Optionen

fritz.box Anruferliste

Offene Frage von "JoachimQ"
Ein Thema von JoachimQ · begonnen am 23. Mär 2007 · letzter Beitrag vom 23. Mär 2007
Antwort Antwort
Benutzerbild von TKC
TKC

Registriert seit: 21. Apr 2004
Ort: Tuningen
367 Beiträge
 
Delphi XE2 Enterprise
 
#1

Re: fritz.box Anruferliste

  Alt 23. Mär 2007, 12:07
Hi,
ich habe mir dafür ne Komponente geschrieben ... hier ein Auszug aus dem Code
Delphi-Quellcode:
procedure TMyGetTelListThread.Execute;
var
  Params : TStringList;
  HTTP : TIdHTTP;
  sTelList : string;

label
  DoAbortAll;

begin

  HTTP := TIdHTTP.Create(nil);
  HTTP.HandleRedirects := True;
  HTTP.Request.ContentLength := -1;
  HTTP.Request.Accept := 'text/html, */*';
  HTTP.HTTPOptions := [hoForceEncodeParams];

  Params := TStringList.Create;
  sTelList := '';

  //Wenn Passwort dann Login durchführen
  if FPasswort <> 'then
    begin
      if Assigned(FOnStatus) then
        FOnStatus('Führe Login durch ...');

      with Params do
        begin
          Clear;
          Add('getpage=../html/de/menus/menu2.html');
          Add('errorpage=../html/index.html');
          Add('var:lang=de');
          Add('var:pagename=home');
          Add('var:menu=home');
          Add('login:command/password=' + FPasswort);
        end;

      //Login To Box
      try
        FHtml := HTTP.Post('http://'+FBoxURL+'/cgi-bin/webcm', Params);

        //Auf ungültiges Passwort prüfen
        if StrIPos('Kennwort ist ungültig', FHtml) > 0 then
          FIntErrStr := 'Kennwort ist ungültig !';

      except
        on E: Exception do FIntErrStr := E.Message;
      end;
    end;

  //Auf abbruch prüfen
  if Self.Terminated then goto DoAbortAll;


  //Telefonliste holen
  if FIntErrStr = 'then
    begin
      if Assigned(FOnStatus) then
        FOnStatus('Fritz!Box Anrufliste erzeugen ...');

      try
        FHtml := HTTP.Get('http://'+FBoxURL+'/cgi-bin/webcm?getpage=../html/de/menus/menu2.html&' +
                          'errorpage=../html/de/menus/' +
                          'menu2.html&var:lang=de&var:pagename=foncalls&var:' +
                          'errorpagename=foncalls&var:menu=fon');
        if (FPasswort = '') and (StrIPos('FRITZ!Box Anmeldung', FHtml) > 0) then
          FIntErrStr := 'Sie benötigen ein gültiges Kennwort um die Anrufliste der Box abzuholen !';
      except
        on E: Exception do FIntErrStr := E.Message;
      end;

      //Auf abbruch prüfen
      if Terminated then goto DoAbortAll;


      if Assigned(FOnStatus) then
        FOnStatus('Fritz!Box Anrufliste abholen ...');

      try
        FHtml := HTTP.Get('http://'+FBoxURL+'/cgi-bin/webcm?' +
                          'getpage=../html/de/FRITZ!Box_Anrufliste.csv');

        sTelList := StrAfter('Dauer', FHtml);
        sTelList := Trim(sTelList);
      except
        on E: Exception do FIntErrStr := E.Message;
      end;

      //Auf abbruch prüfen
      if Terminated then goto DoAbortAll;
    end;




  //Telefonliste löschen
  if (FDeleteOnBox) and (FIntErrStr = '') then
    begin
      if Assigned(FOnStatus) then
        FOnStatus('Fritz!Box Anrufliste löschen ...');
      with Params do
        begin
          Clear;
          Add('getpage=../html/de/menus/menu2.html');
          Add('errorpage=../html/de/menus/menu2.html');
          Add('var:lang=de');
          Add('var:pagename=foncalls');
          Add('var:errorpagename=foncalls');
          Add('var:menu=fon');
          Add('var:pagemaster=');
          Add('telcfg:settings/ClearJournal=1');
        end;

      try
        FHtml := HTTP.Post('http://'+FBoxURL+'/cgi-bin/webcm', Params);
      except
        on E: Exception do FIntErrStr := E.Message;
      end;

      //Auf abbruch prüfen
      if Self.Terminated then goto DoAbortAll;
    end;


  //Event auslösen
  if Assigned(FOnHttpResult) then
    FOnHttpResult(sTelList, FIntErrStr);


  DoAbortAll:

  Params.Free;
  HTTP.Free;
end;
[edit=Jelly]Die zu langen Zeilen auf Wunsch etwas umgebrochen Mfg, Jelly[/edit]
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:00 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 by Thomas Breitkreuz