Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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.044 c
3-1102246187
aglar
2004-12-05 14:29
2005.01.09
Скролинг в DBGrid


1-1103636003
Kat
2004-12-21 16:33
2005.01.09
Есть ли разница в быстродействии и доступе, если поле


1-1103802908
Lamka
2004-12-23 14:55
2005.01.09
Помогите с созданием игры


6-1097865516
vers
2004-10-15 22:38
2005.01.09
прокси на IdTCPServer


14-1103189033
Кот Бегемот
2004-12-16 12:23
2005.01.09
Margaritas ante porcas





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский