Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Speicherpfad von Cookies etc. herausfinden und festlegen (https://www.delphipraxis.net/95260-speicherpfad-von-cookies-etc-herausfinden-und-festlegen.html)

dtrace 4. Jul 2007 01:09


Speicherpfad von Cookies etc. herausfinden und festlegen
 
Hallo alle zusammen,
ich habe einen Browser mit der TMozilla Activex Komponente nachgebaut.
Weiß jemand den Speicherort, wo die Komponente die Cookies, Bilder etc. auslagert? Wie kann man diese Speicherort manuell festlegen?

gruss dTrace

hathor 4. Jul 2007 06:50

Re: Speicherpfad von Cookies etc. herausfinden und festlegen
 
Specialfolder bekommt man mit folgendem Code:

Delphi-Quellcode:
 
uses
  { ... },
  ActiveX, // IMalloc
  ShellAPI, // SHGetSpecialFolderLocation() und SHGetPathFromIDList()
  ShlObj;  // CSIDL_-Konstanten

//fehlende CSIDL_-Konstanten kann man nach folgendem Muster definieren:

const CSIDL_COMMON_APPDATA = $0023;
      CSIDL_MYMUSIC = $0013;
      CSIDL_MYPICTURES = $0014; //FONTS
      CSIDL_LOCAL = $0022;
      CSIDL_SYSTEM = $0025;
      CSIDL_WINDOWS = $0024;
      CSIDL_PROGRAM_FILES = $0026;
      CSIDL_LOCAL_APPDATA = $001C;

function GetSpecialFolder(hWindow: HWND; Folder: Integer): String;
var
pMalloc: IMalloc;
pidl: PItemIDList;
Path: PChar;
begin
// get IMalloc interface pointer
if (SHGetMalloc(pMalloc) <> S_OK) then
begin
MessageBox(hWindow, 'Couldn''t get pointer to IMalloc interface.','SHGetMalloc(pMalloc)', 16);
Exit;
end;
// retrieve path
SHGetSpecialFolderLocation(hWindow, Folder, pidl);
GetMem(Path, MAX_PATH);
SHGetPathFromIDList(pidl, Path);
Result := Path;
FreeMem(Path);
 
// free memory allocated by SHGetSpecialFolderLocation
pMalloc.Free(pidl);
end;

function GetSpecialFolder2(FolderID : longint) : string;
var
 Path : pchar;
 idList : PItemIDList;
begin
 GetMem(Path, MAX_PATH);
 SHGetSpecialFolderLocation(0, FolderID, idList);
 SHGetPathFromIDList(idList, Path);
 Result := string(Path);
 FreeMem(Path);
end;

function GetDrives: string;
begin
 Result := IncludeTrailingBackslash(GetSpecialFolder2(CSIDL_Drives));
end;

function GetMyMusic: string;
begin
 Result := IncludeTrailingBackslash(GetSpecialFolder2(13));
end;

function GetTmpInternetDir: string;
begin
 Result := IncludeTrailingBackslash(GetSpecialFolder2(CSIDL_INTERNET_CACHE));
end;

function GetCookiesDir: string;
begin
 Result := IncludeTrailingBackslash(GetSpecialFolder2(CSIDL_COOKIES));
end;

function GetHistoryDir: string;
begin
 Result := IncludeTrailingBackslash(GetSpecialFolder2(CSIDL_HISTORY));
end;

function GetDesktop: string;
begin
 Result := IncludeTrailingBackslash(GetSpecialFolder2(CSIDL_DESKTOP));
end;

function GetDesktopDir: string;
begin
 Result := IncludeTrailingBackslash(GetSpecialFolder2(CSIDL_DESKTOPDIRECTORY));
end;

function GetProgDir: string;
begin
 Result := IncludeTrailingBackslash(GetSpecialFolder2(CSIDL_PROGRAMS));
end;

function GetMyDocDir: string;
begin
 Result := IncludeTrailingBackslash(GetSpecialFolder2(CSIDL_PERSONAL));
end;

function GetFavDir: string;
begin
 Result := IncludeTrailingBackslash(GetSpecialFolder2(CSIDL_FAVORITES));
end;

function GetStartUpDir: string;
begin
 Result := IncludeTrailingBackslash(GetSpecialFolder2(CSIDL_STARTUP));
end;

function GetRecentDir: string;
begin
 Result := IncludeTrailingBackslash(GetSpecialFolder2(CSIDL_RECENT));
end;

function GetSendToDir: string;
begin
 Result := IncludeTrailingBackslash(GetSpecialFolder2(CSIDL_SENDTO));
end;

function GetStartMenuDir: string;
begin
 Result := IncludeTrailingBackslash(GetSpecialFolder2(CSIDL_STARTMENU));
end;

function GetNetHoodDir: string;
begin
 Result := IncludeTrailingBackslash(GetSpecialFolder2(CSIDL_NETHOOD));
end;

function GetFontsDir: string;
begin
 Result := IncludeTrailingBackslash(GetSpecialFolder2(CSIDL_FONTS));
end;

function GetTemplateDir: string;
begin
 Result := IncludeTrailingBackslash(GetSpecialFolder2(CSIDL_TEMPLATES));
end;

function GetAppDataDir: string;
begin
 Result := IncludeTrailingBackslash(GetSpecialFolder2(CSIDL_APPDATA));
end;

function GetPrintHoodDir: string;
begin
 Result := IncludeTrailingBackslash(GetSpecialFolder2(CSIDL_PRINTHOOD));
end;

//damit kriegt man angezeigt, was auf dem eigenen PC möglich ist
//for i := 0 to 64 do Memo1.Lines.add(IntToStr(i)+' : '+ GetSpecialFolder(Form1.Handle,i));
Entschuldigt bitte den "Chaos"-Code - war zum Experimentieren...

mkinzler 4. Jul 2007 06:52

Re: Speicherpfad von Cookies etc. herausfinden und festlegen
 
Das aktive Profil kannst du aus der profiles.ini unter lw:\Dokumente und Einstellungen\Anwendungsdaten\Mozilla\Firefox auslesen.

hathor 4. Jul 2007 07:33

Re: Speicherpfad von Cookies etc. herausfinden und festlegen
 
Zitat:

Zitat von mkinzler
Das aktive Profil kannst du aus der profiles.ini unter lw:\Dokumente und Einstellungen\Anwendungsdaten\Mozilla\Firefox auslesen.

1. profiles.ini ist hidden
2. etwas Brauchbares steht nicht drin
3. LW:\...Local Settings\Application Data\Mozilla\Firefox\Profiles\q68r9gkb.default\Cac he enthält nur binäre/verschlüsselte Daten.

mkinzler 4. Jul 2007 07:42

Re: Speicherpfad von Cookies etc. herausfinden und festlegen
 
Schau mal unter lw:\Dokumente und Einstellungen\Anwendungsdaten\Mozilla\Firefox\Prof iles\q68r9gkb.default

SirThornberry 4. Jul 2007 08:08

Re: Speicherpfad von Cookies etc. herausfinden und festlegen
 
Zitat:

Zitat von hathor
3. LW:\...Local Settings\Application Data\Mozilla\Firefox\Profiles\q68r9gkb.default\Cac he enthält nur binäre/verschlüsselte Daten.

Und deswegen meinst du das es der falsche Ort ist? Mozilla ist eben kein ie. Vielleicht speichert Mozilla alles binär um schneller darauf zugreifen zu können.
Die einfachste Variante den Cache zu finden ist eine eindeutige Webseite aufzurufen und dann die Dateien der Festplatte nach diesem Inhalt zu durchsuchen.

hathor 4. Jul 2007 08:36

Re: Speicherpfad von Cookies etc. herausfinden und festlegen
 
Zitat:

Zitat von SirThornberry
Die einfachste Variante den Cache zu finden ist eine eindeutige Webseite aufzurufen und dann die Dateien der Festplatte nach diesem Inhalt zu durchsuchen.

Wozu? Ich weiss doch, wo die Daten sind!


dtrace muss wissen, ob er damit was anfangen kann...

dtrace 4. Jul 2007 14:44

Re: Speicherpfad von Cookies etc. herausfinden und festlegen
 
Vielen Dank für die zahlreichen Antworten,
allerdings finde ich immernoch nicht den Speicherort der TMozilla Komponente.
Wie ich die ganzen Verzeichnisse auslesen, dass hat mit sehr weitergeholfen...aber ich glaube dass das TMozilla-Control einen anderen Pfad als Firefox benutzt.

hmmm... hat jemand von euch die TMozilla-Komponente installiert?

dtrace 4. Jul 2007 14:53

Re: Speicherpfad von Cookies etc. herausfinden und festlegen
 
Die Ressourcen etc. werden ins Verzeichnis C:\Programme\Mozilla ActiveX Control v1.7.12 kopiert...ich habe da auch schon geschaut ob da vielleicht ein Unterordner erstellt wird, kann aber nix brauchbares finden....


hmmm :roll:

hathor 4. Jul 2007 18:16

Re: Speicherpfad von Cookies etc. herausfinden und festlegen
 
Mein FIREFOX nutzt alle Pfade, die über SHGetSpecialFolderLocation (siehe oben) gemeldet werden, das Plugin wird genauso funktionieren, denn es ist ja nur eine Schnittstelle.

dtrace 5. Jul 2007 11:35

Re: Speicherpfad von Cookies etc. herausfinden und festlegen
 
Also funktioniert mein Browser nur, wenn Firefox auf dem Zielrechner installiert ist?
Wie funktioniert der genaue Aufruf von SHGetSpecialFolderLocation ?

Kann ich mit diesem Befehl das Verzeichnis für die gespeicherten Dateien ermitteln die Firefox bzw. die TMozilla KOmponente erstellt?

mkinzler 5. Jul 2007 11:37

Re: Speicherpfad von Cookies etc. herausfinden und festlegen
 
Zitat:

Kann ich mit diesem Befehl das Verzeichnis für die gespeicherten Dateien ermitteln die Firefox bzw. die TMozilla KOmponente erstellt?
Nein da das mozilla-Controll ne eigen GRE mitbringst und diese unter
LW:\Programme\Mozilla ActiveX Control vx.xx.xxx
installiert.

dtrace 5. Jul 2007 11:50

Re: Speicherpfad von Cookies etc. herausfinden und festlegen
 
Dann müssten dort doch auch in irgendeinem Verzeichnis die Dateien gespeichert werden oder irre ich mich da?

mkinzler 5. Jul 2007 12:32

Re: Speicherpfad von Cookies etc. herausfinden und festlegen
 
Diese werden wohl garnicht gespeichert. Hab mir das im FileMon angeschaut.
Ist nur im Debugger der Fall. startet man das programm nicht aus der Ide greift es auf:
...\Anwendungsdaten\MozillaControl und ...\Anwendungsdaten\Mozilla zu

hathor 6. Jul 2007 05:04

Re: Speicherpfad von Cookies etc. herausfinden und festlegen
 
Zitat:

Zitat von dtrace
Wie funktioniert der genaue Aufruf von SHGetSpecialFolderLocation ?

SHGetSpecialFolderLocation Function:

http://msdn2.microsoft.com/en-us/library/ms647814.aspx

SHGetFolderLocation Function:

http://msdn2.microsoft.com/en-us/library/ms647762.aspx

SHGetFolderPath Function:

http://msdn2.microsoft.com/en-us/library/ms647764.aspx

Weitere Infos:

http://msdn2.microsoft.com/de-de/library/system.environment.specialfolder(VS.80).aspx

http://msdn2.microsoft.com/de-de/library/system.environment.getfolderpath(VS.80).aspx

http://msdn.microsoft.com/library/en...nums/csidl.asp

http://msdn2.microsoft.com/en-us/library/ms649274.aspx


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:20 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