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

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

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 01:22 25.04.24 
Клубове/ Компютри и Интернет / Delphi Пълен преглед*
Информация за клуба
Тема Re: OleObject за IE Window [re: lceHot]
Автор lceHot (WindMaster)
Публикувано14.09.05 19:20  



В отговор на:


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ActiveX, Shdocvw, MSHTML, StdCtrls, DB, DBTables, OleCtrls, Mask, DBCtrls, Grids, DBGrids,
ExtCtrls, ADODB, Buttons, ShellAPI;

type
TForm1 = class(TForm)
Button1: TButton;
Table1: TTable;
DataSource1: TDataSource;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
TObjectFromLResult = function(LRESULT: lResult; const IID: TIID; WPARAM: wParam; out pObject): HRESULT;
stdcall;


var
Form1: TForm1;

implementation

{$R *.dfm}

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;


procedure TForm1.Button1Click(Sender: TObject);
var
Wnd: HWND;
WndChild: HWND;
x: Olevariant;
vaClsID, vaEnabled, vaDummy: Olevariant;
BarIE, IE: iwebbrowser2;
begin
Wnd := FindWindow('IEFrame', nil);
if Wnd = 0 then
begin
showmessage('Start Indra4.exe first!');
exit;
end;

WndChild := FindWindowEX(Wnd, 0, 'Shell DocObject View', nil);
if WndChild <> 0 then begin
WndChild := FindWindowEX(WndChild, 0, 'Internet Explorer_Server', nil);
if WndChild <> 0 then
begin
GetIEFromHWnd(WndChild, IE);
vaCLSID := '{30D02401-6A81-11D0-8274-00C04FD5AE38}';
vaEnabled := True;
vaDummy := 0;
WndChild := FindWindowEX(Wnd, 0, 'Basebar', nil);
if WndChild <> 0 then begin
WndChild := FindWindowEX(WndChild, 0, 'RebarWindow32', nil);
if WndChild <> 0 then begin
WndChild := FindWindowEX(WndChild, 0, 'OCHost', nil);
if WndChild <> 0 then begin
WndChild := FindWindowEX(WndChild, 0, 'Shell Embedding', nil);
if WndChild <> 0 then begin
WndChild := FindWindowEX(WndChild, 0, 'Shell DocObject View', nil);
if WndChild <> 0 then begin
WndChild := FindWindowEX(WndChild, 0, 'Internet Explorer_Server', nil);
if WndChild <> 0 then
begin
GetIEFromHWnd(WndChild, BarIE);
end;
end;
end;
end;
end;
end;
end;
end;
end;




end.




по този начин съм прихванал IE Window, но как мога да достъвам до елементите на му както при TWebBrowser ?
пробвах с IE.OleObject.document.forms.image_clickthrough_form.item("image_click_value",0)
и (IE as Twebbrowser).Oleobject.document.forms.image_clickthrough_form.item("image_click_value",0)

но не става, извейда ми грешка че Oleobject е непознат идентификатор. когато го премахна пък ми извежда, че forms е непознат идентификатор.
Плс, кажете ми как мога да достъпя до този обект.

Благодаря предварително.

начинаещ съм, но всеки е започнал така

Цялата тема
ТемаАвторПубликувано
* OleObject за IE Window lceHot   10.09.05 21:00
. * Re: OleObject за IE Window lceHot   14.09.05 19:20
. * Re: OleObject за IE Window Pechenia   15.09.05 11:44
. * Re: OleObject за IE Window lceHot   16.09.05 19:02
Клуб :  


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

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