[ Vladica Savić @ 20.11.2009. 14:26 ] @
Pozdrav, zanima me da li je moguće i kako da putem moje aplikacije detektujem da li je postavljen fokus na neki html element u web browser-u?
[ tkaranovic @ 21.11.2009. 14:46 ] @
Ako se "web browser" odnosi na, recimo, InternetExplorer, onda može da posluži TInternetExplorer (SHDocVw.pas) ali nešto detaljnije o tome kako nemam jer sam jednom samo probao kako radi...

[ Vladica Savić @ 23.11.2009. 08:21 ] @
Aha, ok, pogledacu. Hvala
A sta je sa ostalim poznatijim, poput firefox-a, chrome-a, opere?
[ stankons @ 23.11.2009. 08:26 ] @
Lično mislim da ne možeš to da uradiš, ali možeš da koristiš neki embeded web browser, u Delphi - u, pa odatle da vršiš detekciju.


Na primer:

http://www.bsalsa.com/
[ Vladica Savić @ 23.11.2009. 08:45 ] @
Ne treba mi web browser unutar moje app, vec moja app da moze da detektuje neku drugu.
[ stankons @ 23.11.2009. 08:50 ] @
Znam, ali mislim da to ne možeš da uradiš.

Eventualno, da automatizuješ IE, na primer, i svakih par sekundi proveravaš da li određeno polje ima fokus...
[ tkaranovic @ 23.11.2009. 13:05 ] @
Ako pod detektovabhen podrzumevaš pristup već otvorenom IE-u onda ne može, ali može da se otvori IE.

Može da se kreira (u OnKreiranje forme):

InternetExplorer1 := TInternetExplorer.Create(Application);

da se vidi:

InternetExplorer1.Visible := true;

može da se otvori neki link (može i iz IE-a da se otvori):

InternetExplorer1.Navigate('neki link');

ovako se zatvara (ne mora):

InternetExplorer1.Quit;

u OnClose forme:

InternetExplorer1.Free;

ovako može da se vidi html kod dokumenta otvorenog u IE:

var Doc: IHTMLDocument2;
begin
Doc := InternetExplorer1.Document as IHtMLDocument2;
showmessage(Doc.body.innerHTML);

Znači da može da se dođe do IHTMLDocument2 isto kao i sa TWebBrowser komponentom. U uses listu treba dodati MShtml a može se pregledati i videti šta sve tu ima osim IHTMLDocument2, pa se onda može ostalo guglati po ključnim rečima.


Moguće da i za duge web pregledače ima nešto slično ali to (koliko znam) nije išlo uz Delphi.
[ Vladica Savić @ 24.11.2009. 08:24 ] @
@tkaranovic - znam za to, ali to nije ono što mi treba :)
...sve u svemu, izgleda da nije izvodljivo, bar ne na osnovu informacija koje sam ja prikupio.

Ukoliko neko dodje nekako do nekog rešenja ipak, nek slobodno postuje.

Hvala na pomoći u svakom slučaju.
[ tkaranovic @ 24.11.2009. 12:27 ] @
To što sam napisao nije ono što si tražio nego ono šta može da se uradi (samo) sa (T)InternetExplorer. :) Pokušavam da pišem u skladu sa pravilima ovog foruma i da ostavim da nešto i sam pronađeš dopišeš. :) Ako neko bude ima link ka nečem kompletnijem i ja ga pozivam da da prosledi ovde. :)


Recimo, dalje od onoga što sam napisao bi bilo da možeš da izlistaš sve otvorene html dokumente, u bilo kom otvorenom IE, korišćenjem (T)ShellWindows (i TInternetExplorer). A da bi došao do fokusiranog elementa moraš da koristiš (i) IHTMLElement.

Onda, recimo, možeš u IE da otvoriš adresu http://www.elitesecurity.org/, da fokusiraš polje za unos korisničkog imena i onda bi mogao da dobiješ ovakav (log) ispis (tag elementa i njegov html kod):


otvorena adresa: http://www.elitesecurity.org/
fokusiran element: INPUT, <INPUT maxLength=25 name=username>


Ili da biraš od svih otvorenih dokumenta, na osnovu adrese, (svih IE instanci) dokument čijem interfejsu ćeš da pristupiš.


Ako ni ovo nije ono što si tražio :) onda će barem ostati kao putokaz u ovoj temi za nekoga kome bude (kada bude, recimo, pretraživao ES forum...) nešto tako trebalo.