Форум: "Сети";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.033 c