Delete Cookies with Delphi Code

Saat ini saya sedang mengerjakan project membuat ceklist lewat Galaxy Tab. Aplikasi ceklist tersebut tim saya buat dengan menggunakan PHP dengan bermodalkan HTML 5, dimana untuk slider dan model form sudah banyak memanfaatkan function HTML 5 yang cukup cantik dan elegan.

Tapi giliran untuk mengeprint ke priter termal yang kecil, kami mengalami masalah, karena belum menemukan setting untuk langsung ngeprint dari halaman web yang kita buka dari Samsung Galaxy Tab ke Printer tersebut.

Akhirnya kami menemukan sebuah cara dengan membuat aplikasi khusus untuk mengeprint yang secara otomatis mengeprint jika ada penyisipan record baru. Aplikasi tersebut saya buat dengan Delphi 7 dengan memanfaatkan komponen twebbrowser dan timer, jadi di halaman web dibuat sebuah halaman yang khusus dipanggil oleh aplikasi lalu aplikasi tersebut mengeprint isi dari halaman web yang sudah digenerate oleh PHP tersebut.

Kodenya adalah sbb:


alamatphp:='http://'+ipserver+'/wac/print_page/auto_print.php';

   Flags := 0;
      WebBrowser1.Navigate(WideString(alamatphp), Flags, Flags, Flags, Flags);

 tetapi ada masalah ketika halaman dari komponen twebbrowser di refresh, halamannya itu-itu saja, rupanya cookiesnya masih tersimpan, sehingga ketika halaman tersebut dipanggil berulang-ulang tidak mau refres. Maka selanjutnya saya clear terus cookies yang ada di Internet Explorer, nah hal ini kalau diimplementasikan ke user tentu tidak cocok, maka saya menemukan function di Delphi untuk menghapus cookies di Internet explorer


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;

 Untuk mengclearkan cookies tinggal panggil function tersebut, sebelum memanggil halaman web

DeleteIECache;

 WebBrowser1.Navigate(WideString(alamatphp), Flags, Flags, Flags, Flags);

OK kalo ada yang kurang paham wajar, tapi jika suatu saat mengalami masalah seperti ini pasti paham. Pemanggilan halaman web lewat komponen twebbrowser banyak sekali gunanya, misalnya untuk mengambil isi data dari web tertentu lewat Delphi, contoh mengambil data kurs web BCA lewat Delphi dan menampilkannya di aplikasi Delphi yang kita buat.

Selamat belajar
Hadi

Tidak ada komentar:

Baca Juga