Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 04:36 10.05.24 
Компютри и Интернет
   >> Delphi
*Кратък преглед

Тема 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



Тема Re: GetIEFromHWNDнови [re: Wise Guy]  
Автор Wise Guy (един такъв)
Публикувано24.05.02 13:22



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



Тема Re: GetIEFromHWNDнови [re: Wise Guy]  
Автор Wise Guy (един такъв)
Публикувано24.05.02 14:35



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.



Тема Re: GetIEFromHWNDнови [re: Wise Guy]  
Автор Pechenia (нема лабаво ;-)
Публикувано24.05.02 16:44



Ей тука викат че го правят:

http://www.delphihackerspages.nl/IEGetSource.html

http://www.euromind.com/iedelphi/ie5tools/ieautomate.htm

А ще проверя дали не лъжат...

чети и дишай по-леко


Тема Re: GetIEFromHWNDнови [re: Pechenia]  
Автор Wise Guy (един такъв)
Публикувано29.05.02 13:25



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



Тема Ehhhнови [re: Wise Guy]  
Автор Wise Guy (един такъв)
Публикувано29.05.02 14:20



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.



Тема Finally gutovo [re: Wise Guy]  
Автор Wise Guy (един такъв)
Публикувано30.05.02 23:54



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




*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.