View Full Version : سوال: پاک کردن کوکی با دلفی
  
sajioo
دوشنبه 23 دی 1392, 08:58 صبح
سلام دوستان من دو تا سوال دارم.
اول اینکه وقتی وب بروزر روی فرمم هست چطوری میشه کوکی هاشو حذف کرد و از بین برد البته با برنامه دلفی؟
اصلا این کوکی ها کجا نگه داری میشه؟
سوال دوم اینکه آیا میشه مثلا کوکی های که گوگل کروم یا فایرفاکس و ... ذخیره کردن با دلفی پاک کرد؟
کسی از اساتید اطلاعاتی در این  مورد داره؟ منابع رو گشتم اما جواب خاصی پیدا نکردم:متفکر:
Mask
دوشنبه 23 دی 1392, 12:20 عصر
اول اینکه وقتی وب بروزر روی فرمم هست چطوری میشه کوکی هاشو حذف کرد و از بین برد البته با برنامه دلفی؟
قبلا هم گفتم.مرورگری که رو فرم دارید مرورگر مشتق شده از Internet Explorer  شماست .وقتی کوکیهای این مرورگر حذف بشود، یعنی کوکی های مرورگر شما حذف شده.
قبلا در مورد حذف کوکی ها و هیستوری گفتگو شده. بهتره که دقیقتر جستجو کنید.
سوال دوم اینکه آیا میشه مثلا کوکی های که گوگل کروم یا فایرفاکس و ... ذخیره کردن با دلفی پاک کرد؟
بله ان مرورگرها هم کوکی ها رو در بانکهای اطلاعاتی خودشون نگهداری میکنند.مثلا کروم در یانک اطلاعاتی خودش که Sqlite هست ، نگهداری میکنه. که با تحقیق در این مورد ، میتونید به این بانک متصل و کوکی های موجود رو حذف کنید.
sajioo
دوشنبه 23 دی 1392, 13:46 عصر
دوستان من کد زیر رو پیدا کردم  اما جواب نداد . هرچی سایتم رفتم همینو پیشنهاد کردن :افسرده:
procedure DeleteIECache;
var
  lpEntryInfo: PInternetCacheEntryInfo;
  hCacheDir: LongWord;
  dwEntrySize: LongWord;
begin
  dwEntrySize := 0;
  FindFirstUrlCacheEntry(nil, TInternetCacheEntryInfo(nil^), dwEntrySize);
  GetMem(lpEntryInfo, dwEntrySize);
  if dwEntrySize > 0 then lpEntryInfo^.dwStructSize := dwEntrySize;
  hCacheDir := FindFirstUrlCacheEntry(nil, lpEntryInfo^, dwEntrySize);
  if hCacheDir <> 0 then
  begin
    repeat
      DeleteUrlCacheEntry(lpEntryInfo^.lpszSourceUrlName );
      FreeMem(lpEntryInfo, dwEntrySize);
      dwEntrySize := 0;
      FindNextUrlCacheEntry(hCacheDir, TInternetCacheEntryInfo(nil^), dwEntrySize);
      GetMem(lpEntryInfo, dwEntrySize);
      if dwEntrySize > 0 then lpEntryInfo^.dwStructSize := dwEntrySize;
    until not FindNextUrlCacheEntry(hCacheDir, lpEntryInfo^, dwEntrySize);
  end;
  FreeMem(lpEntryInfo, dwEntrySize);
  FindCloseUrlCache(hCacheDir);
end;
BORHAN TEC
دوشنبه 23 دی 1392, 18:50 عصر
سلام
برای پاک کردن کوکی های IE می توانید از کدی مثل کد زید استفاده کنید. تابع اول چیز خاصی نیست و فقط برای پاک کردن محتویات یک دایرکتوری مورد استفاده قرار می گیرد و اگر از دلفی 2010 یا نسخه های جدیدتر استفاده می کنید برای این منظور می توانید از کد بسیار ساده تری استفاده کنید:
function TMainWindow.DelFilesInDir(Filter, Folder: string; Recurse: Boolean):Cardinal;
var
  sr: TSearchRec;
  sDirList: TStringList;
  i: Integer;
  { LOCAL PROCEDURE }
  procedure GetSubDirs (Folder: string; sList: TStringList);
  var
    sr: TSearchRec;
  begin
    if FindFirst (Folder + '*.*', faDirectory, sr) = 0 then
    try
      repeat
        if (sr.Attr and faDirectory) = faDirectory then
          sList.Add (sr.Name);
          Application.ProcessMessages;
      until FindNext(sr) <> 0;
    finally
      FindClose(sr);
    end;
  end;
  {END OF LOCAL PROCEDURE}
begin
  if FindFirst (Folder + Filter, faAnyFile, sr) = 0 then
  repeat
    if ((DeleteFile(Folder + sr.Name)=False) or (RemoveDir(Folder + sr.Name)=False))
          and (sr.Name <> '.') and (sr.Name <> '..') then
      BEGIN
        Inc(ErrCount);
      END;
    Application.ProcessMessages;
  until FindNext(sr) <> 0;
  FindClose(sr);
  if Recurse then
  begin
    sDirList := TStringList.Create;
    try
      GetSubDirs (Folder, sDirList);
      for i := 0 to sDirList.Count - 1 do
        if (sDirList[i] <> '.') and (sDirList[i] <> '..') then
        begin
          Update;
          DelFilesInDir (Filter,
            IncludeTrailingPathDelimiter (Folder + sDirList[i]),
            Recurse);
        end;
    finally
      sDirList.Free;
    end;
  end;
end;
//-------------------------------------------------------------------------------------------
procedure TMainWindow.DelCookies;
var
  CookiesDir : string;
begin
  ErrCount := 0;
  regObj.CloseKey;
  regObj.RootKey := HKEY_CURRENT_USER;
  regObj.OpenKey('Software\Microsoft\Windows\Current Version\Explorer\Shell Folders', True);
  CookiesDir := regObj.ReadString('Cookies');
  lstItem := lstObjects.Items.Add;
  lstItem.Caption := 'Cookies';
  lstItem.SubItems.Add('Deleting...');
//  ShowMessage(CookiesDir);
  if CookiesDir <> '' then
    BEGIN
      DelFilesInDir('*.*', CookiesDir + '\',True);
      if ErrCount = 0 then
        lstItem.SubItems[0] := 'Deleted'
      else if ErrCount=1 then
        lstItem.SubItems[0] := '1 Error happend'
      else
        lstItem.SubItems[0] := IntTostr(ErrCount) + ' Errors happend';
    END
  else
    lstItem.SubItems[0] := 'Deleted';
end;
موفق باشید...
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.