- Details
- Written by: Stanko Milosev
- Category: Web
- Hits: 12198
If you need to automate IE8, popup windows, then read this articleÂ
Window structure go like this:
Frame Tab,
TabWindowClass,
Shell DocObject View,
Internet Explorer_Server.
So, code would go something like this:
var Wnd: HWND;  WndChild: HWND; IE: iwebbrowser2; begin  webBrowser.Quit;  try  Wnd := FindWindow('IEFrame', nil);  if Wnd = 0 then //No running instance of Internet Explorer so stop!  begin  showmessage('No Running instance of Internet Explorer');  exit;  end;  WndChild := FindWindowEX(Wnd , 0, 'Frame Tab', nil);  Wnd := FindWindowEX(WndChild, 0, 'TabWindowClass', nil);  Wnd := FindWindowEX(Wnd, 0, 'Shell DocObject View', nil);  Wnd := FindWindowEX(Wnd, 0, 'Internet Explorer_Server', nil);  if Wnd <> 0 then  begin  GetIEFromHWnd(Wnd, IE); //Get Iwebbrowser2 from Handle Result := IE;  end;  except  on e: Exception do  ShowMessage('GetIE' + e.Message); end; end 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;
I was using myCatch, to get windows structure.
This code which I left here is just to give you idea, I hope that soon I will upload example of automation IE6, IE7 and IE8...
- Details
- Written by: Stanko Milosev
- Category: Web
- Hits: 6118
One way to show user location on the google maps, in his/her default browser:
http://maps.google.com/maps?q=pot%20na%20hrese%2C+Ljubljana
Where, of course, you should put instead of:
pot%20na%20hrese%2C+Ljubljana
adress you would like to search...
- Details
- Written by: Stanko Milosev
- Category: Web
- Hits: 7319
I was using TEmbeddedWB:
EmbeddedWb1.ElementByID['username'].SetAttribute('value', 'stanko', 0)
This is if you ger error:
Exception class EOleError with message 'Method 'Name' not supported by automation object
In TEmbeddedWB.