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?
Pristup "objektima" web browsera.
Zaključano
Zakačeno
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...
Aha, ok, pogledacu. Hvala
A sta je sa ostalim poznatijim, poput firefox-a, chrome-a, opere?
A sta je sa ostalim poznatijim, poput firefox-a, chrome-a, opere?
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/
Na primer:
http://www.bsalsa.com/
Ne treba mi web browser unutar moje app, vec moja app da moze da detektuje neku drugu.
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...
Eventualno, da automatizuješ IE, na primer, i svakih par sekundi proveravaš da li određeno polje ima fokus...
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.
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.
@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.
...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.
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.
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.