Umgebungsvariable



  • Vorrax schrieb:

    Ich muss ein bestimmte css Datei löschen, um eine Web-Seite zurück zu setzen.

    Und die liegt im übergeordneten Profilverzeichnis?



  • C:\Dokumente und Einstellung\Username\Lokale Einstellung\Temporary Internet Files
    Um genau zu sein dort 🙂

    Ich arbeite gerade an einer CSIDL Lösung (CSIDL_INTERNET_CACHE).
    Folgender Code bereitet mir jedoch Probleme:

    TCHAR Pfad[MAX_PATH];
    	SHGetFolderPath(NULL, CSIDL_INTERNET_CACHE, NULL, SHGFP_TYPE_CURRENT, szPath);
    	return (AnsiString Pfad);
    

    Denn wenn ich die "vcl.h" eingebunden habe, "beißt" sie sich mit der für SHGetFolderPath notwendige "shlobj.h".

    In meinem Kopf herrscht gerade Vakuum und mir fehlt die Idee das Problem zu lösen. Jemand hier vielleicht 'ne schnelle Idee?



  • VorraxUneingeloggt schrieb:

    C:\Dokumente und Einstellung\Username\Lokale Einstellung\Temporary Internet Files
    Um genau zu sein dort 🙂

    Aah. Mir fällt auch gerade auf, daß ich deinen ersten Post offenbar zu fix überflogen habe 😞 CSIDL_INTERNET_CACHE ist natürlich die Lösung.

    VorraxUneingeloggt schrieb:

    In meinem Kopf herrscht gerade Vakuum und mir fehlt die Idee das Problem zu lösen. Jemand hier vielleicht 'ne schnelle Idee?

    An den Anfang der .cpp-Datei

    #define NO_WIN32_LEAN_AND_MEAN
    

    setzen.



  • Nun steh ich vor einem neuem Problem. Die Dateien in dem Order "C:\Dokumente und Einstellung\Username\Lokale Einstellung\Temporary Internet Files" sind nicht einfach mit DeleteFile löschbar, obwohl mir ein FileExist true zurück gibt. Das liegt wohl unter anderem daran, das die Files dort nicht so gespeichert werden, wie sie durch den Explorer angezeigt werden.

    Hat jemand schon mal ein Cookie, eine *.css, oder ähnliches aus diesem Ordner per Code löschen können?



  • VorraxUneingeloggt schrieb:

    Die Dateien [...] sind nicht einfach mit DeleteFile löschbar

    Sondern!? Was passiert beim Versuch?



  • Vielleicht eine Rechtefrage, vielleicht sind sie schreibgeschützt?
    Schau dir mal das Ergebnis von GetLastError() an.



  • void __fastcall TFormPlugIn::Init(void)
    {
    	AnsiString path = GetEnvPath(32); //32 = CSIDL_INTERNET_CACHE
    
    	char Username[50];
    	unsigned long l = 50;
    	GetUserName(Username, &l);
    
    	AnsiString file = path + "\\cookie:" + Username + "@www.internetadresse.de/";
    	if(FileExists(file))
               ShowMessage("FileExist!");
    	if(DeleteFile(file))
    		ShowMessage("Gelöscht");
    }
    

    Das ist derzeit mein Code. FileExist gibt mir true zurück. DeleteFile gibt mir false zurück.



  • audacia schrieb:

    Schau dir mal das Ergebnis von GetLastError() an.



  • Okay, das Problem ist, das Cookies keine Dateien sind (hab mal per cmd geschaut was da wirklich drin ist, enthalten sind unter anderem Ordner wie: Antiphishing\B3BB5BBA-E1D3-40OK-A041.....)

    Hat jemand vielleicht eine andere Idee Dateien dieser Art zu löschen? Bzw. gibs eine Windowsfunktion einzelne Cookies zu löschen?



  • Dafür gibt es DeleteUrlCacheEntry.
    Schau auch mal hier
    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2624419&SiteID=1


Anmelden zum Antworten