|
Тема
|
GetIEFromHWND
|
|
Автор |
Wise Guy (един такъв) |
Публикувано | 17.05.02 02:02 |
|
Nqkoi polzval li e tazi funkciq:
type
TObjectFromLResult = function(LRESULT: lResult; const IID: TIID; WPARAM: wParam; out pObject): HRESULT; stdcall;
function GetIEFromHWND(WHandle: HWND; var IE: IWebbrowser2): HRESULT;
var
hInst: HWND;
lRes: Cardinal;
MSG: Integer;
pDoc: IHTMLDocument2;
ObjectFromLresult: TObjectFromLresult;
begin
hInst := LoadLibrary('Oleacc.dll');
@ObjectFromLresult := GetProcAddress(hInst, 'ObjectFromLresult');
if @ObjectFromLresult <> nil then begin
try
MSG := RegisterWindowMessage('WM_HTML_GETOBJECT');
SendMessageTimeOut(WHandle, MSG, 0, 0, SMTO_ABORTIFHUNG, 1000, lRes);
Result := ObjectFromLresult(lRes, IHTMLDocument2, 0, pDoc);
if Result = S_OK then
(pDoc.parentWindow as IServiceprovider).QueryService(IWebbrowserApp, IWebbrowser2, IE);
finally
FreeLibrary(hInst);
end;
end;
end;
Pri men izkarva Undeclared Identifier vupreki che sum slojil:
OleServer, OleCtrls, SHDocVw, ComObj, SHDocVW_TLB, MSHTML_TLB vuv uses
Nqkoi moje li da pomogne, che ne moga da si hvana IWebbrowser2-to ot "Internet Explorer_Server" Handle
by Wise Guy
| |
|
Nikoi li ne znae neshto po vuprosa. Ne moga da polucha IWebbrowser2 na startiran Internet Explorer. Razpolagam sus 'Internet Explorer_Server' Handle. Imashe uj nqkakvi exemples, no ne mi trugnaha..
by Wise Guy
| |
|
Vuv uses mi e lipsvalo ActiveX. 10x na Emilio za pomoshta
Sq zaseche na dugo mqsto. Po princip zadachata mi e da vzema selectiraniq text vuv IE. Prerabotih malko GetIEFromHWND i poluchavam napravo IHTMLDocument2. Eto kak izglejda source-a za vzimane na text-a:
var
IE: IHTMLDocument2;
range: Variant;
begin
GetIEFromHWND($34033C, IE);//$34033C - handle na IE startiran v momenta
range := IE.Selection.CreateRange;
Form1.Caption := range.Text;
end;
Da no ne izliza nishto. Kude gresha?
by Wise Guy
Редактирано от Wise Guy на 24.05.02 15:24.
| |
|
Ей тука викат че го правят:
http://www.delphihackerspages.nl/IEGetSource.html
http://www.euromind.com/iedelphi/ie5tools/ieautomate.htm
А ще проверя дали не лъжат...
чети и дишай по-леко
| |
|
Tochno s tezi dvete bachkah. I za da vzema selectiraniq text razgledah edin java script (http://www.webreference.com/js/column12/crossbrowser.html) Taka namerih tochno kakvo da polzvam ot interface-ite. Eto kak izglejda posledno moq kod (no ne bachka):
uses
..., OleServer, OleCtrls, SHDocVw, ComObj, ActiveX, MSHTML;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
function GetIEFromHWND(WHandle: HWND; var Doc: IHTMLDocument2): HRESULT;
end;
TObjectFromLResult = function(LRESULT: lResult; const IID: TIID; WPARAM: wParam; out pObject): HRESULT; stdcall;
{implementation}
function TForm1.GetIEFromHWND(WHandle: HWND; var Doc: IHTMLDocument2): HRESULT;
var
hInst: HWND;
lRes: Cardinal;
MSG: Integer;
ObjectFromLresult: TObjectFromLresult;
begin
hInst := LoadLibrary('Oleacc.dll');
@ObjectFromLresult := GetProcAddress(hInst, 'ObjectFromLresult');
if @ObjectFromLresult <> nil then
begin
try
MSG := RegisterWindowMessage('WM_HTML_GETOBJECT');
SendMessageTimeOut(WHandle, MSG, 0, 0, SMTO_ABORTIFHUNG, 1000, lRes);
Result := ObjectFromLresult(lRes, IHTMLDocument2, 0, Doc);
finally
FreeLibrary(hInst);
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
IE: IHTMLDocument2;
range: Variant;
begin
GetIEFromHWND($34033C, IE);
range := IE.Selection.CreateRange;
Form1.Caption := range.Text;
end;
by Wise Guy
| |
|
Source-a gore si bachka... problema e bil v tova che dosega go probvam na dir.bg , a toi e s frame-ove. Qvno v tozi sluchai selekciqta ne se hvashta. Potursih reshenie na tozi problem, no rabotata ne vurvi. Purvo ne moga da razbera dali documenta e s BODY ili FRAMESET. Nqkoi ima li ideq ka shte stane nai-burzo (imam si IWebBrowser2). I sed tova trqbva moje bi da hvana activeniq frame i da vzema texta. Mutna e rabotata. Nikoi li ne se e zanimaval s takiva bozi. Google ne izkarva nishto deto da svurshi rabota...
by Wise Guy
Редактирано от Wise Guy на 29.05.02 14:43.
| |
|
Iskam da blagodarq na Google, che pomogna v tova trudno nachinanie. Okaza se dosta bozliva rabota. Ako stranicata e s frame-ove se nalaga obikalqneto na vseki ot tqh i proverka dali tam nqma select-iran text. Nai-nakraq skalupih neshto prilichno.
Ako na nqkoi mu trqbva source za hvashtane na selectiran text vuv IE 4+ da se obadi
Pfuu che chudesiq...
by Wise Guy
| |
|
|
|
|