[Delphi] IE History manipuleren

Pagina: 1
Acties:

  • Norckon
  • Registratie: September 2000
  • Laatst online: 16-02 23:21
Hallo,

ik ben, in Delphi, bezig een browser te schrijven waarmee een bepaalde site bezocht kan worden. De gebruikers kunnen niet zien waar ze zich bevinden en veel opties, zoals het normale contextmenu, zijn uitgeschakeld.

Het adres wordt opgehaald van een vooraf bepaalde pagina en het EmbeddedWB (EWB) object wordt vervolgens naar de gevonden locatie gestuurd. Tot zover geen probleem; niemand ziet wat er gebeurt (yep, wel met netstat [-a]) en het werkt prima.

'Helaas' gebruikt EWB de gewone IE functionaliteit en dus ook de geschiedenis. Hierin vind ik dus alle bezochte pagina's terug wat niet de bedoeling is. De Navigate2 procedure kan Flags meekrijgen, waaronder navNoHistory, maar deze zorgt er alleen voor (kwam ik na lang proberen en zoeken achter) dat de pagina niet in de geschiedenis van de Back-knop voorkomt en dus wel in de globale IE geschiedenis.

Volgende poging:
Via de IEnumStatUrl en IUrlHistoryStg interface heb ik toegang tot DeleteUrl en ClearHistory.

ClearHistory werkt prima, maar gooit de hele geschiedenis leeg, wat niet de bedoeling is. DeleteUrl doet echter niets, ondanks dat de vele artikelen die ik hierover vindt, bijvoorbeeld deze van Microsoft zelf, aangeven dat dit wel zou moeten werken (zie punt 2 onder More Information in genoemd artikel).

Ik weet inmiddels niet meer wat te doen en tegelijkertijd dat het wél kan... Er zijn zat tooltjes die de geschiedenis kunnen tonen én aparte items kunnen verwijderen. Heeft iemand een linkje, tips of een voorbeeld wat mij op weg zou kunnen helpen?

Verwijderd

Als je het urlhistory component download:
http://www.euromind.com/iedelphi/urlhistory/turlhistory.htm

Let even op het volgende:
According to Microsoft IUrlhistoryStg require IE 5.5. and Windows Millenium or Windows 2000.
Must of the functions works well also with Win98 and IE 5.0.

En via onderstaande code kan je een url uit de history verwijderen. (Gebruik deze code i.c.m. de demo)

Delphi:
1
2
3
4
5
6
7
8
var
  myString    : String;
  wideChars : array[0..1500] of WideChar; // zomaar een grootte kijk wat je nodig hebt.
begin
  // Set up our string
  myString := edit2.text;
  URLHistory1.DeleteUrl(StringToWideChar(myString, wideChars, length(edit2.text)+1));
end;


Succes ermee.

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 15-05 14:44

_Thanatos_

Ja, en kaal

Maar je wil natuurlijk niet de history van IE verwijderen. Misschien gebruikt de gebruiker dat juist wel, en krijgt je klachten "uw applicatie verwijdert mijn history!" ;)

日本!🎌


  • Koffie
  • Registratie: Augustus 2000
  • Laatst online: 16-05 09:45

Koffie

Koffiebierbrouwer

Braaimeneer

Los van dat feit, wat nu als je browser (of de PC) om welke reden dan ook crashed ? Dan heb je nog niet opgeschoond en staat het nog steeds in de history

Tijd voor een nieuwe sig..