2009-02-04 12 views

risposta

3

Non potresti semplicemente cercare C:\Documents and Settings\user\Local Settings\Temporary Internet Files per i file con "cookie" nel nome file?

Ecco la chiamata Win32 per ottenere la cartella:

BOOL SHGetSpecialFolderPath(
    HWND hwndOwner, 
    LPTSTR lpszPath, 
    int nFolder, 
    BOOL fCreate 
); 

Passo CSIDL_COOKIES come argomento nFolder.

Verificare questo collegamento A Cleanup API for Windows.

È possibile eliminare i cookie memorizzati nella cache tramite le funzioni FindFirstUrlCacheEntry, FindNextUrlCacheEntry e DeleteUrlCacheEntry. Puoi passare "cookie:" come primo argomento (LPCTSTR lpszUrlSearchPattern) a FindFirstUrlCacheEntry.

+0

Questa è una soluzione molto brutta. Potresti cancellare i file teoricamente, ma mentre Internet Explorer è in esecuzione non lo noterà. Il modo corretto è usare un'API per quello (come correttamente risposto da Daniel) – Elmue

5

In realtà, ho capito!

In API di Windows si dispone di una funzione per creare biscotti chiamati InternetSetCookie, e si utilizza in questo modo:

InternetSetCookie("http://teste.com", NULL, "name = value; expires = Sat,01-Jan-2020 00:00:00 GMT"); 

Ma, se si desidera eliminare il cookie invece di creare esso, devi solo impostare il campo di scadenza da qualche parte, in passato, in questo modo:

InternetSetCookie("http://teste.com", NULL, "name = value; expires = Sat,01-Jan-2000 00:00:00 GMT"); 

Maggiori informazioni su di esso in Managing Cookies.

Problemi correlati