Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.09;
Скачать: CL | DM;

Вниз

Handle объекта в документе html   Найти похожие ветки 

 
Строгов Артем   (2004-10-21 13:30) [0]

Есть документ HTML. В теге <object> указан flash-файл. Собственно нужно получить его handle в окне документа.

Очень нужно, прошу помочь кто знает.


 
VMcL ©   (2004-10-21 14:34) [1]

>Собственно нужно получить его handle в окне документа.

А откуда сведения, что у object"а есть некий handle?


 
easy ©   (2004-10-21 16:30) [2]

var
 h,flash:HWND;
begin
 h := GetWindow(GetWindow(WebBrowser1.Handle, GW_CHILD), GW_CHILD);
 flash:=FindWindowEx(h,0,"MacromediaFlashPlayerActiveX","");
 if flash<>0 then
   caption:="$"+inttohex(h,8)
 else
   caption:="Not Found";


 
Строгов Артем   (2004-10-21 23:33) [3]

Большое спасибо. С одним файлом работает, а как получить если есть фреймы?


 
easy ©   (2004-10-22 11:02) [4]

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, OleCtrls, SHDocVw, StdCtrls;

type
 TForm1 = class(TForm)
   Memo1: TMemo;
   WebBrowser1: TWebBrowser;
   procedure FormCreate(Sender: TObject);
   procedure WebBrowser1DocumentComplete(Sender: TObject;
     const pDisp: IDispatch; var URL: OleVariant);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

function EnumChildProc(Window: HWND; LParam: Longint): Bool; stdcall;
var
 ClassName: array [0..255] of Char;
const
 FLASH_AX = "MacromediaFlashPlayerActiveX";
begin
 Result := True;
 GetClassName(Window, ClassName, SizeOf(ClassName));
 if not (TStringList(LParam) is TStringList) then
   raise Exception.Create("EnumChildProc was not passed a TStringList");
 if ClassName = FLASH_AX then
   TStringList(LParam).Add("$"+IntToHex(Window, 8) + " -> " + ClassName);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 with Memo1 do begin
   Clear;
   Height:=150;
   Align:=alBottom;
   ScrollBars:=ssBoth;
 end;
 with WebBrowser1 do begin
   Align:=alClient;
   Navigate("чтототама.htm");
 end;
end;

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
 const pDisp: IDispatch; var URL: OleVariant);
var
 Captions: TStringList;
 ErrCode: DWORD;
begin
 Captions := TStringList.Create;
 try
   SetLastError(0);
   if EnumChildWindows(WebBrowser1.Handle, @EnumChildProc,
     Longint(Captions)) then
     Captions.Add("End of child list")
   else if GetLastError = NO_ERROR then
     Captions.Add("No child windows were found")
   else
     begin
     ErrCode := GetLastError;
     Captions.Add("EnumChildWindows failed - " +
       SysErrorMessage(ErrCode));
     end;
 finally
   Memo1.Clear;
   Memo1.Lines.Assign(Captions);
   Captions.Free;
 end;
end;

end.


 
Строгов Артем   (2004-10-22 15:33) [5]

Огвомное спасибо, сейчас буду тестить.



Страницы: 1 вся ветка

Текущий архив: 2005.01.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.971 c
1-1103804703
Руслана
2004-12-23 15:25
2005.01.09
Глупый вопрос по ListView


4-1101308682
koshak
2004-11-24 18:04
2005.01.09
индикатор системных ресурсов


9-1094678752
массив
2004-09-09 01:25
2005.01.09
Glscene Как создавать TGLFreeForm в рантайме ?


1-1103552777
Dmitry
2004-12-20 17:26
2005.01.09
TChart. Метки перекрывают друг друга. Как избежать?


4-1100934519
Avatara
2004-11-20 10:08
2005.01.09
Запуск посторонних приложений