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 dortIch 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 dortAah. 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