AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte CookieCrumbler 1.5.10 - Stable!
Thema durchsuchen
Ansicht
Themen-Optionen

CookieCrumbler 1.5.10 - Stable!

Ein Thema von Andreas L. · begonnen am 1. Jun 2009 · letzter Beitrag vom 9. Aug 2009
Antwort Antwort
Seite 5 von 7   « Erste     345 67      
Andreas L.
CookieCrumbler
CookieCrumbler durchsucht das System nach Cookies und erstellt anschließend eine Sicherheitsbewertung jedes Cookies. Man hat dann die Möglichkeit alle Cookies zu löschen oder nur jene, die eine negative Sicherheitsbewertung erhalten haben. Desweiteren kann jedes Cookie auch manuell gelöscht oder dessen Inhalt verändert werden. Es ist ebenfalls möglich eine automatische Bereinigung beim Systemstart durchzuführen.

Cookies können zwar nützlich sein (Auto-Login auf Webseiten z. B.) aber auch eindeutige Benutzerids enthalten (verfolgendes Cookie) die bei jeden Zugriff auf eine entsprechend präparierte Seite (meistens über Werbebanner) geloggt werden. Nach und nach kann der "Ersteller" des Cookies eine Art Benutzerprofil anlegen, was wohl von den meistens Internetbenutzern nicht gewünscht ist. Natürlich bieten aktuelle Browser die Option Cookies beim Beenden zu löschen, manche Cookies möchte man aber behalten (Sucheinstellungen, Auto-Login, usw.). Manuell aussortieren ist bei einem durchschnittlichen Surfer ziemlich zeitintensiv, schaut man sich an wie viele Cookies nur durch ein paar Stunden surfen anfallen können. Und dann sind da noch Cookies wo man sie nicht vermuten würde: In Mediaplayern, Videobearbeitungssoftware und anderen Programmen. CookieCrumbler findet fast alle Cookies (siehe unterstützte Programme)! Eine ausführliche Erklärung warum Cookies eine Bedrohung darstellen gibt es in der noch unfertigen Programmhilfe.

Funktionen
  • Automatische Bereinigung beim Systemstart
  • Übersichtliche und einfach zu bedienende Oberfläche
  • Benutzerdefinierbare Regeln um bestimmte Cookies unabhängig von der Sicherheitsbewertung zu behalten oder zu löschen
  • Updateprogramm um sowohl die Filterlisten als auch die Programmdateien immer auf dem aktuellsten Stand zu halten

Unterstützte Programme
  • Mozilla Firefox
  • Mozilla Seamonkey (früher Mozilla Suite)
  • Mozilla Prism
  • Internet Explorer
  • K-Meleon
  • Flock
  • Netscape Navigator
  • Wyzo
  • Celtx
  • Miro
  • Songbird
  • Adobe Flash Player
  • Beonex Communicator
  • Google Chrome
  • SRWare Iron / Chromium
  • Safari (neu)

Läuft seit Version 1.3 nicht mehr unter Win9x! Min. Windows-Version ist 2000.

Screenshots
Hauptfenster mit Statusmeldungen
Cookie-Editor
Bereinigungsdialog
Bearbeiten eines Cookies
Weitere Screenshots sind auf der Produktseite zu finden.

Lizenz
Gratis für die private Verwendung

Download
Setup - 1,86 MB
ZIP Archiv - 2,00 MB
7-ZIP Archiv - 1,11 MB

Links
Produktseite
Hilfeseite (noch nicht ganz fertig)
Cross-Post im DF

Changelog
Version 1.5.10 - 09.08.2009
[#]Zeitpunkt vom letzten Update wird richtig erkannt[*]Filterlisten aktualisiert

Version 1.5.9 - 05.08.2009
[#]Löschen-Button funktioniert jetzt richtig
[#]Die Breite der Spalten im Cookie-Editor werden jetzt richtig gespeichert
[#]Internet Explorer DHTML Behaviors werden jetzt richtig erkannt

Version 1.4.9 - 29.07.2009
[#]Flash-Cookies werden jetzt richtig gespeichert
[#]Update funktioniert jetzt
[#]Rechtschreibfehler behoben
[+]Safari cookies werden jetzt erkannt

Vesion 1.3.8 - 14.07.2009
:ie Version scheint ordentlich zu laufen, deshalb: Stable
[#]Zurück-Button im Bereinigendialog geht jetzt
[+]Englische Sprache hinzugefügt
[#]Willkommen-Dialog sieht jetzt auch mit klassischen Windows-Theme schick aus
[+]Doppelklick im Cookie-Editor öffnet Bearbeiten-Dialog
[+]ENTER-Taste im Cookie-Editor öffnet Bearbeiten-Dialog
[+]ENTF-Taste im Cookie-Editor löscht die gewählten Einträge
[#]"Fehler beim codieren des Datums"-Bug behoben

Version 1.3.7 - 12.07.2009
[+]Zusammenfassung mit vorher/nachher-Ansicht im Bereinigen-Dialog
[+]Regeln können jetzt direkt im Bereinigen/Einstellungen Dialog bearbeitet werden
[#]Die Bereinigenroutine funktioniert jetzt problemlos, es wird wirklich alles gelöscht was weg muss. Hab das in unzähligen Konstellationen getestet!!!
[#]Speichern sollte jetzt 50 % schneller sein und nicht mehr hängen bleiben
[+]Fortschrittsanzeige beim Speichern
[#]Änderungen können jetzt jederzeit gespeichert werden, man kann außerdem die Änderungen verwerfen (d. h. die Original-Daten laden)
[#]Schönheitsfehler behoben
[#]Updateprogramm vollständig überarbeitet
[+]In der Statusleiste des Cookie-Editors wird die Anzahl der Cookies angezeigt

Version 1.2.6 20.06.2009
[+]Option: Regel ignorieren wenn das Cookie als gefährlich eingestuft wurde
[+]"CookieCrumbler beenden"-Button im "Anwendungen schließen"-Fenster
[#]Webappsstore (Mozilla DOM Cookies) werden jetzt korrekt gespeichert
[#]Bug mit der Cookielistensortierung (was für ein Wort..) wenn ein Cookie gelöscht wird ist jetzt behoben

Version 1.2.5 20.06.2009
[+]Sprache Lettisch hinzugefügt
[#]Bug bei automatischer Bereingung beim Systemstart behoben
[#]Kleinere Schönheitsfehler korrigiert

Version 1.1.4 20.06.2009
[+]Spalten im Cookie-Editor lassen sich nun sortieren
[+]Suchfunktion
[#]Bug beim Beenden/Speichern müsste jetzt behoben sein
Miniaturansicht angehängter Grafiken
mainwindow_de_new_168.png  
Angehängte Dateien
Dateityp: zip cookiecrumbler_1.5.10_884.zip (2,00 MB, 57x aufgerufen)
Dateityp: exe cookiecrumbler_1.5.10_setup_516.exe (1,86 MB, 3x aufgerufen)
 
Andreas L.
 
#41
  Alt 21. Jun 2009, 10:45
Zitat von toms:
Zitat von Andreas L.:
Zitat:
---------------------------
CookieCrumbler
---------------------------
Ungültiges Argument zum Codieren des Datums.
---------------------------
OK
---------------------------
Welche der oben aufgelisteten Programme hast du denn installiert?
IE, Chrome. Fehler kommt immer noch bei der neusten Version.
Welche Windows-Version hast du? Evtl. eine englische Ausgabe? Kann mir das nicht erklären. Der einzige Punkt an dem ich ein Datum auslese ist beim Laden der Cookies. Kannst du evtl. mal die Datei %LOCAL_APPDATA%\Google\Chrome\UserData\Default\Coo kies mit einem SQLite-Editor öffnen und mir die Spalten creation_utc, last_access_utc und expires_utc per PN schicken? Alternativ die komplette Cookie-Datei. Danke

Zitat von xZise:
Ehm ...
A simple Delphi wrapper for Sqlite 3
Und wenn mir deinen Code oben angucke benutzt du ihn ebenfalls
Ja, genau den.
Zitat von xZise:
Weil dieses "GetTable" mich irgendwie ankotzt, da man kein Objekt zurückgeben sollte.
Wie machst du es denn in deinen Projekten?

Zitat von xZise:
Es waren 4 "gefährliche"... Also Durchschnittlich 3 Sekunden pro Cookie! Dürfte man denn in die Unit gucken?
Du hast insgesamt nur 4 Cookies?

CookieCrumblerApp.pas
Ich lege alle Cookies in einer, naja, universellen Cookie-Liste ab. Beim speichern kopiere ich mir die Cookies wieder in die spezielle "Format-Cookie-List" und speichere.
Delphi-Quellcode:
procedure TCookieCrumblerApp.SaveCookies;
var
  iCookie, iFile: Integer;
  MozillaCookies: TBcMozillaCookies;
  FirefoxCookies: TBcFirefoxCookies;
  FlashCookies: TBcFlashSharedObjectsCookies;
  ChromeCookies: TBcChromeCookies;
  IECookies: TBcIECookies;
  IEDHTMLCookies: TBcIEDHTMLBehaviorsCookies;
  MozillaDOM: TBcMozillaDOMStorageCookies;
  //SafariCookies: TBcSafariCookies;
  TempCookies: TBcMultiCookieHolder;
begin
  MozillaCookies := TBcMozillaCookies.Create(nil);
  FirefoxCookies := TBcFirefoxCookies.Create(nil);
  FlashCookies := TBcFlashSharedObjectsCookies.Create(nil);
  ChromeCookies := TBcChromeCookies.Create(nil);
  IECookies := TBcIECookies.Create(nil);
  IEDHTMLCookies := TBcIEDHTMLBehaviorsCookies.Create(nil);
  MozillaDOM := TBcMozillaDOMStorageCookies.Create(nil);
  //SafariCookies := TBcSafariCookies.Create(nil);
  TempCookies := TBcMultiCookieHolder.Create(nil);

  for iFile := 0 to Files.Count -1 do
  begin
    TempCookies.Clear;

    if FDebugMode then
    begin
      Log.Add(DateTimeToStr(now) + #9 + 'Save' + #9 + IntToStr(Integer(Files[iFile].Format)) + #9 + Files[iFile].FileName + '(start)' + #9 + IntToStr(iFile + 1) + '/' + IntToStr(Files.Count));
      Log.SaveToFile(IncludeTrailingPathDelimiter(GetShellFolder(CSIDL_DESKTOP)) + 'CookieCrumbler.log');
    end;

    for iCookie := 0 to Cookies.Count -1 do
    begin
      if StrToInt(Cookies[iCookie].Source) = iFile then
        TempCookies[TempCookies.Add].Assign(Cookies[iCookie]);
    end;

    case Files[iFile].Format of
      cfFirefox: begin
        FirefoxCookies.Clear;
        for iCookie := 0 to TempCookies.Count -1 do
          FirefoxCookies[FirefoxCookies.Add].Assign(TempCookies[iCookie]);
        FirefoxCookies.SaveToFile(Files[iFile].FileName);
      end;
      cfFlash: begin
        FlashCookies.Clear;
        for iCookie := 0 to TempCookies.Count -1 do
          FlashCookies[FlashCookies.Add].Assign(TempCookies[iCookie]);
        FlashCookies.SaveToDirectory(Files[iFile].FileName);
      end;
      cfChrome: begin
        ChromeCookies.Clear;
        for iCookie := 0 to TempCookies.Count -1 do
          ChromeCookies[ChromeCookies.Add].Assign(TempCookies[iCookie]);
        ChromeCookies.SaveToFile(Files[iFile].FileName);
      end;
      cfIE: begin
        IECookies.Clear;
        for iCookie := 0 to TempCookies.Count -1 do
          IECookies[IECookies.Add].Assign(TempCookies[iCookie]);
        IECookies.SaveToDirectory(Files[iFile].FileName, True);
      end;
      cfIEDHTML: begin
        IEDHTMLCookies.Clear;
        for iCookie := 0 to TempCookies.Count -1 do
          IEDHTMLCookies[IEDHTMLCookies.Add].Assign(TempCookies[iCookie]);
        IEDHTMLCookies.SaveToDirectory(Files[iFile].FileName);
      end;
      cfMozilla: begin
        MozillaCookies.Clear;
        for iCookie := 0 to TempCookies.Count -1 do
          MozillaCookies[MozillaCookies.Add].Assign(TempCookies[iCookie]);
        MozillaCookies.SaveToFile(Files[iFile].FileName);
      end;
      cfMozillaDOM: begin
        MozillaDOM.Clear;
        for iCookie := 0 to TempCookies.Count -1 do
          MozillaDOM[MozillaDOM.Add].Assign(TempCookies[iCookie]);
        MozillaDOM.SaveToFile(Files[iFile].FileName);
      end;
      {cfSafari: begin
        SafariCookies.Clear;
        for iCookie := 0 to TempCookies.Count -1 do
          SafariCookies[SafariCookies.Add].Assign(TempCookies[iCookie]);
        SafariCookies.SaveToFile(Files[iFile].FileName);
      end; }

    end;

    if FDebugMode then
    begin
      Log.Add(DateTimeToStr(now) + #9 + 'Save' + #9 + IntToStr(Integer(Files[iFile].Format)) + #9 + Files[iFile].FileName + '(end)' + #9 + IntToStr(iFile + 1) + '/' + IntToStr(Files.Count));
      Log.SaveToFile(IncludeTrailingPathDelimiter(GetShellFolder(CSIDL_DESKTOP)) + 'CookieCrumbler.log');
    end;

  end;
  TempCookies.Free;
  MozillaCookies.Free;
  FirefoxCookies.Free;
  FlashCookies.Free;
  ChromeCookies.Free;
  IECookies.Free;
  IEDHTMLCookies.Free;
  MozillaDOM.Free;
  //SafariCookies.Free;
end;
BCCookies.pas
Delphi-Quellcode:
type
  ...
  TBcFirefoxCookies = class(TBcHTTPCookies)
  protected
    procedure SetCookie(Index: Integer; Value: TBcFirefoxCookie);
    function GetCookie(Index: Integer):TBcFirefoxCookie;
    function PrimaryKeyIsUnique(Value: Int64; ExceptItem: Integer):Boolean;
  public
    function Add:Integer;
    procedure LoadFromFile(FileName: String);
    procedure SaveToFile(FileName: String);
    property Cookies[Index: Integer]: TBcFirefoxCookie read GetCookie write SetCookie; default;
  end;

  ...

  {$WARNINGS OFF}
  TBcCookie = class(TPersistent)
  private
    FName: String;
    FContent: String;
    FDomain: String;
    FPath: String;
    FExpires: TDateTimeEx;
    FSecure: LongBool;
    FWholeDomain: LongBool;
    FLastAccessed: TDateTimeEx;
    FCreated: TDateTimeEx;
    FFlags: Int64;
    FData: String;
    FFileName: String;
    FOwner: String;
  protected
    procedure SetLastAccessed(Value: TDateTimeEx);
    procedure SetCreated(Value: TDateTimeEx);
    procedure SetExpires(Value: TDateTimeEx);
    property Secure: LongBool read FSecure write FSecure;
    property WholeDomain: LongBool read FWholeDomain write FWholeDomain;
    property LastAccessed: TDateTimeEx read FLastAccessed write SetLastAccessed;
    property Created: TDateTimeEx read FCreated write SetCreated;
    property Flags: Int64 read FFlags write FFlags;
    property Name: String read FName write FName;
    property Content: String read FContent write FContent;
    property Domain: String read FDomain write FDomain;
    property Path: String read FPath write FPath;
    property Expires: TDateTimeEx read FExpires write SetExpires;
    property Data: String read FData write FData;
    property FileName: String read FFileName write FFileName;
    property Owner: String read FOwner write FOwner;
  public
    constructor Create;
    destructor Destroy;
    procedure Assign(Source: TBcCookie);
    procedure AssignTo(Dest: TBcCookie);
  end;
  {$WARNINGS ON}  

  TBcHTTPCookie = class(TBcCookie)
  public
    function IsBroken:Boolean;
    function IsExpired:Boolean;
  published
    property Name;
    property Content;
    property Domain;
    property Path;
    property Expires;
  end;

  TBcMozillaCookie = class(TBcHTTPCookie)
  published
    property Secure;
    property WholeDomain;
  end;

  TBcFirefoxCookie = class(TBcMozillaCookie)
  published
    property LastAccessed;
    property Created;
  end;

  ...

{ TBcFirefoxCookies }
procedure TBcFirefoxCookies.SetCookie(Index: Integer; Value: TBcFirefoxCookie);
begin
  FCookies[Index] := Value;
end;

function TBcFirefoxCookies.GetCookie(Index: Integer):TBcFirefoxCookie;
begin
  Result := FCookies[Index] as TBcFirefoxCookie;
end;

function TBcFirefoxCookies.Add:Integer;
var
  NewCookie: TBcFirefoxCookie;
begin
  NewCookie := TBcFirefoxCookie.Create;
  Result := FCookies.Add(NewCookie);
end;

function TBcFirefoxCookies.PrimaryKeyIsUnique(Value: Int64; ExceptItem: Integer):Boolean;
var
  iCookie: Integer;
begin
  Result := True;
  for iCookie := 0 to Count -1 do
  begin
    if (iCookie <> ExceptItem) and (Cookies[iCookie].Created.AsPRTime = Value) then
    begin
      Result := False;
      Break;
    end;
  end;
end;

procedure TBcFirefoxCookies.LoadFromFile(FileName: string);
var
  db: TSQLiteDatabase;
  table: TSQLIteTable;
begin
  Clear;
  db := TSQLiteDatabase.Create(FileName);
  try
    if db.TableExists('moz_cookies') then
    begin
      table := db.GetTable('SELECT id, name, value, host, path, expiry, isSecure, isHTTPOnly, lastAccessed FROM moz_cookies');
      try
        while not table.EOF do
        begin
          with Cookies[Add] do
          begin
            Name := table.FieldAsString(table.FieldIndex['name']);
            Content := table.FieldAsString(table.FieldIndex['value']);
            Domain := table.FieldAsString(table.FieldIndex['host']);
            Path := table.FieldAsString(table.FieldIndex['path']);
            Expires.AsUnixTime(StrToInt64(table.FieldAsString(table.FieldIndex['expiry'])));
            Secure := LongBool(StrToIntDef(table.FieldAsString(table.FieldIndex['isSecure']), 0));
            WholeDomain := LongBool(StrToIntDef(table.FieldAsString(table.FieldIndex['isHTTPOnly']), 0));
            LastAccessed.AsPRTime(StrToInt64(table.FieldAsString(table.FieldIndex['lastAccessed'])));
            Created.AsPRTime(StrToInt64(table.FieldAsString(table.FieldIndex['id'])));
          end;
          table.Next;
        end;
      finally
        table.Free;
      end;
    end;
  finally
    db.Free;
  end;
end;

procedure TBcFirefoxCookies.SaveToFile(FileName: string);
var
  db: TSQLiteDatabase;
  iCookie: Integer;
  ExpiresStr: String;
  LastAccessedStr: String;
  IsUnique: Boolean;
begin
  db := TSQLiteDatabase.Create(FileName);
  try
    if db.TableExists('moz_cookies') then
      db.ExecSQL('DROP TABLE moz_cookies');
    db.ExecSQL('CREATE TABLE moz_cookies (id INTEGER, name TEXT, value TEXT, host TEXT, path TEXT, expiry INTEGER, lastAccessed INTEGER, isSecure INTEGER, isHTTPOnly INTEGER, PRIMARY KEY(id))');
    for iCookie := 0 to Count -1 do
    begin

      //sicherstellen das der Primärschlüssel nur einmal vorkommt
      IsUnique := PrimaryKeyIsUnique(Cookies[iCookie].Created.AsPRTime, iCookie);
      while not IsUnique do
      begin
        Cookies[iCookie].Created.AsPRTime(Cookies[iCookie].Created.AsPRTime + 1000000);
        IsUnique := PrimaryKeyIsUnique(Cookies[iCookie].Created.AsPRTime, iCookie);
      end;

      //sicherstellen das alle anderen Integer-Werte ungleich dem Primärschlüssel sind
      LastAccessedStr := IntToStr(Cookies[iCookie].LastAccessed.AsPRTime);
      if Cookies[iCookie].Created.AsPRTime = Cookies[iCookie].LastAccessed.AsPRTime then
        LastAccessedStr := IntToStr(Cookies[iCookie].LastAccessed.AsPRTime + 1000000);

      ExpiresStr := IntToStr(Cookies[iCookie].Expires.AsUnixTime);
      if Cookies[iCookie].Created.AsPRTime = Cookies[iCookie].Expires.AsUnixTime then
        ExpiresStr := IntToStr(Cookies[iCookie].Expires.AsUnixTime + 1000000);

      db.ExecSQL('INSERT INTO moz_cookies (id, name, value, host, path, expiry, lastAccessed, isSecure, isHTTPOnly)' +
                 ' VALUES ("' + IntToStr(Cookies[iCookie].Created.AsPRTime) + '", "' +
                 EscapeSQLStatement(Cookies[iCookie].Name) + '", "' +
                 EscapeSQLStatement(Cookies[iCookie].Content) + '", "' +
                 EscapeSQLStatement(Cookies[iCookie].Domain) + '", "' +
                 EscapeSQLStatement(Cookies[iCookie].Path) + '", "' +
                 ExpiresStr + '", "' +
                 LastAccessedStr + '", "' +
                 IntToStr(LongBoolToInt(Cookies[iCookie].Secure)) + '", "' +
                 IntToStr(LongBoolToInt(Cookies[iCookie].WholeDomain)) + '")');
    end;
  finally
    db.Free;
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#42
  Alt 21. Jun 2009, 11:54
Zitat von Andreas L.:
Zitat von xZise:
Weil dieses "GetTable" mich irgendwie ankotzt, da man kein Objekt zurückgeben sollte.
Wie machst du es denn in deinen Projekten?
Ehm andersherum Ich würde, wenn ich die Unit entwickelt hätte, zum einem die Tabelle in der Liste übergeben und vorher erstellt. Und zum anderen hätte ich extra ein "QuerySQL" ausgeführt.

Zitat von Andreas L.:
Zitat von xZise:
Es waren 4 "gefährliche"... Also Durchschnittlich 3 Sekunden pro Cookie! Dürfte man denn in die Unit gucken?
Du hast insgesamt nur 4 Cookies?
Ehm Mist Verlesen. Wie viele insgesamt es waren kann ich nicht sagen. Ich guck gleich mal nach, nur frage ich mich, wie ich sie zählen soll

Für die Performance könnte ein BeginTransaction/Commit hilfreich sein. Und warum machst du kein Delta Abgleich?

MfG
xZise
Fabian
  Mit Zitat antworten Zitat
Andreas L.
 
#43
  Alt 21. Jun 2009, 12:04
Zitat von xZise:
Ehm Mist Verlesen. Wie viele insgesamt es waren kann ich nicht sagen. Ich guck gleich mal nach, nur frage ich mich, wie ich sie zählen soll
Statistikfunktion steht schon auf meiner Todoliste

Zitat von xZise:
Für die Performance könnte ein BeginTransaction/Commit hilfreich sein. Und warum machst du kein Delta Abgleich?
Wie mache ich denn einen Commit und was ist ein Delta-Abgleich?
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms

 
Delphi XE Professional
 
#44
  Alt 21. Jun 2009, 13:31
Zitat von Andreas L:
Welche Windows-Version hast du? Evtl. eine englische Ausgabe? Kann mir das nicht erklären.
Vista 32bit, engl. Für so was verwende ich madexcept, damit ich schnell die Fehlerstelle im Code finde.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

 
Delphi 10.3 Rio
 
#45
  Alt 21. Jun 2009, 13:42
Schönes Programm,

Habe aber einen Fehler gefunden.

Nach dem ich das update ausgelöst hatte.

Und es will sich nicht mehr beenden es ist hängen geblieben

Gruss Sascha
Miniaturansicht angehängter Grafiken
fehler_136.jpg  
  Mit Zitat antworten Zitat
Andreas L.
 
#46
  Alt 21. Jun 2009, 14:19
Zitat von toms:
Für so was verwende ich madexcept, damit ich schnell die Fehlerstelle im Code finde.
Schau ich mir mal an. Danke für den Tipp

Zitat von fuknersascha:
Habe aber einen Fehler gefunden.

Nach dem ich das update ausgelöst hatte.

Und es will sich nicht mehr beenden es ist hängen geblieben
Während CookieCrumbler geöffnet ist, darf natürlich kein Browser laufen. Normalerweise sollte da aber eine Meldung erscheinen. Werde mir was einfallen lassen.

Danke fürs testen
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#47
  Alt 21. Jun 2009, 14:38
Zitat von Andreas L.:
Zitat von xZise:
Ehm Mist Verlesen. Wie viele insgesamt es waren kann ich nicht sagen. Ich guck gleich mal nach, nur frage ich mich, wie ich sie zählen soll
Statistikfunktion steht schon auf meiner Todoliste

Zitat von xZise:
Für die Performance könnte ein BeginTransaction/Commit hilfreich sein. Und warum machst du kein Delta Abgleich?
Wie mache ich denn einen Commit und was ist ein Delta-Abgleich?
Naja mit Delta-Abgleich meine ich, dass du nur die Änderungen speicherst. Also statt alle Cookies zu löschen und dann neu reinzuschreiben, nur die Cookies löschen, die gelöscht wurden.

Und das mit Commit machst du so:
Delphi-Quellcode:
db := TSQLiteDatabase.Create;
try
  db.BeginTransaction;
  try
    // Hier die Änderungen übertragen
  finally
    db.Commit;
  end;
finally
  db.Free;
end;
Es ist QUASI das gleiche wie BeginUpdate/EndUpdate, mit dem Unterschied, dass du es hier leider nur einmal ausführen darfst. Imho nicht gerade gut gelöst

MfG
xZise
Fabian
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

 
Delphi XE2 Professional
 
#48
  Alt 9. Jul 2009, 11:14
nach dem Update bekomme ich nun immer

Zitat:
---------------------------
CookieCrumbler
---------------------------
Error executing SQL.
Error [1]: SQL error or missing database.
"SELECT domain, key, value, secure, owner FROM webappsstore": no such table: webappsstore.
---------------------------
OK
---------------------------
beim Starten,

Danach klicke ich auf Cookie Editor und er aktualisiert sich doch irgendwie,

das Problem das beim Beenden auftritt wurde ja auch schon erwähnt ...
Uwe
  Mit Zitat antworten Zitat
Andreas L.
 
#49
  Alt 9. Jul 2009, 12:46
Hi Corpsman,

danke fürs testen

Sämtliche Fehler sollten in Version 1.3 behoben sein. Bis Sonntag werde ich die neue Version wohl fertig haben.
  Mit Zitat antworten Zitat
Andreas L.
 
#50
  Alt 12. Jul 2009, 10:59
Neue Version im ersten Beitrag

Changelog
Version 1.3.7 - 12.07.2009
[+]Zusammenfassung mit vorher/nachher-Ansicht im Bereinigen-Dialog
[+]Regeln können jetzt direkt im Bereinigen/Einstellungen Dialog bearbeitet werden
[#]Die Bereinigenroutine funktioniert jetzt problemlos, es wird wirklich alles gelöscht was weg muss. Hab das in unzähligen Konstellationen getestet!!!
[#]Speichern sollte jetzt 50 % schneller sein und nicht mehr hängen bleiben
[+]Fortschrittsanzeige beim Speichern
[#]Änderungen können jetzt jederzeit gespeichert werden, man kann außerdem die Änderungen verwerfen (d. h. die Original-Daten laden)
[#]Schönheitsfehler behoben
[#]Updateprogramm vollständig überarbeitet
[+]In der Statusleiste des Cookie-Editors wird die Anzahl der Cookies angezeigt
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 7   « Erste     345 67      


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 09:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz