Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.028 c
14-1103147175
palva
2004-12-16 00:46
2005.01.09
Ремонт видеомагнитофона или новый купить?


1-1103727679
cfytr
2004-12-22 18:01
2005.01.09
Вставка в RichEdit или ее перехват


9-1094880905
cyborg
2004-09-11 09:35
2005.01.09
Прошу потестировать cyborgengine2d


6-1098444992
Ramon
2004-10-22 15:36
2005.01.09
Проверка мыла на наличие новых писем


6-1098442071
Stlh
2004-10-22 14:47
2005.01.09
UDP (multicast) loopback в 98й.




   Наверх