sieurcoug Posted December 28, 2006 Posted December 28, 2006 I can't manage to make auto-it click a SWF object in IE. My HTML Code : <object classid="clsid:F25CDT6E-YE8D-11kl-59T8-454859559213" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="19" height="5"> <param name="movie" value="./myobject.swf"> <param name="quality" value="high"> <embed src="./myobject.swf" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="19" height="5"></embed> </object> I tried this, but this doesn't work : _IEAction (IEGetObjByName ($oIE, "clsid:F25CDT6E-YE8D-11kl-59T8-454859559213"), "click") Any idea ?
DaleHohm Posted December 28, 2006 Posted December 28, 2006 (edited) A classid is not equal to a name! Assuming this is the first object tag on the page, check out _IETagNameGetCollection($oIE, "object", 0) Dale Edit: also note that you cannot nest _IE functions inside eachother because the object variables are passed byRef Edited December 28, 2006 by DaleHohm Free Internet Tools: DebugBar, AutoIt IE Builder, HTTP UDF, MODIV2, IE Developer Toolbar, IEDocMon, Fiddler, HTML Validator, WGet, curl MSDN docs: InternetExplorer Object, Document Object, Overviews and Tutorials, DHTML Objects, DHTML Events, WinHttpRequest, XmlHttpRequest, Cross-Frame Scripting, Office object model Automate input type=file (Related) Alternative to _IECreateEmbedded? better: _IECreatePseudoEmbedded Better Better? IE.au3 issues with Vista - Workarounds SciTe Debug mode - it's magic: #AutoIt3Wrapper_run_debug_mode=Y Doesn't work needs to be ripped out of the troubleshooting lexicon. It means that what you tried did not produce the results you expected. It begs the questions 1) what did you try?, 2) what did you expect? and 3) what happened instead? Reproducer: a small (the smallest?) piece of stand-alone code that demonstrates your trouble
Moderators big_daddy Posted December 28, 2006 Moderators Posted December 28, 2006 This may give you some ideas. #include <IE.au3> Opt("MouseCoordMode", 2) $oIE = _IECreate() $HWnd = _IEPropertyGet($oIE, "hwnd") $pos = ControlGetPos($HWnd, "", "Internet Explorer_Server1") $sHTML = "" $sHTML &= '<html>' & @CR $sHTML &= '<body>' & @CR $sHTML &= '<h2>Picture As Object</h2>' & @CR $sHTML &= '<object height="100" width="240"' & @CR $sHTML &= 'type="image/jpeg" data="">' & @CR $sHTML &= '</object>' & @CR $sHTML &= '</body>' & @CR $sHTML &= '</html>' _IEBodyWriteHTML($oIE, $sHTML) $oObject = _IETagNameGetCollection($oIE, "OBJECT", 0) With $oObject $x = .offsetLeft $y = .offsetTop $h = .Height $w = .Width EndWith MouseMove($pos[0] + $x + ($w / 2), $pos[1] + $y + ($h / 2))
sieurcoug Posted December 29, 2006 Author Posted December 29, 2006 Thanks for your helpI tried _IETagNameGetCollection($oIE, "object", 2)But I get the return 7 from @ERROR : no match.The object is in a frameset.Is it the problem ?
DaleHohm Posted December 29, 2006 Posted December 29, 2006 Thanks for your helpI tried _IETagNameGetCollection($oIE, "object", 2)But I get the return 7 from @ERROR : no match.The object is in a frameset.Is it the problem ?Yes. You must first get a reference to the frame with _IEFrameGetObj* function because the frame is the document container. The helpfile examples for those functions should get you what you need. Dale Free Internet Tools: DebugBar, AutoIt IE Builder, HTTP UDF, MODIV2, IE Developer Toolbar, IEDocMon, Fiddler, HTML Validator, WGet, curl MSDN docs: InternetExplorer Object, Document Object, Overviews and Tutorials, DHTML Objects, DHTML Events, WinHttpRequest, XmlHttpRequest, Cross-Frame Scripting, Office object model Automate input type=file (Related) Alternative to _IECreateEmbedded? better: _IECreatePseudoEmbedded Better Better? IE.au3 issues with Vista - Workarounds SciTe Debug mode - it's magic: #AutoIt3Wrapper_run_debug_mode=Y Doesn't work needs to be ripped out of the troubleshooting lexicon. It means that what you tried did not produce the results you expected. It begs the questions 1) what did you try?, 2) what did you expect? and 3) what happened instead? Reproducer: a small (the smallest?) piece of stand-alone code that demonstrates your trouble
sieurcoug Posted January 3, 2007 Author Posted January 3, 2007 Hello,Based on your help, I went further and manage to "catch" the frame where my SWF are.But _IETagNameGetCollection only find the OBJECT tags and not the EMBED tags.This sample code gives all the elements in my frame but bot the EMBED.$oElements = _IETagNameAllGetCollection ($oFrame) For $oElement In $oElements MsgBox(0, "Element Info", "Tagname: " & $oElement.tagname & @CR & "innerText: " & $oElement.innerText) NextWhat I need is to get the src attribute "myobject.swf" in my HTML code below in order to do a _IEAction ($o_object, "click").Any idea ?<object classid="clsid:F25CDT6E-YE8D-11kl-59T8-454859559213" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="19" height="5"> <param name="movie" value="./myobject.swf"> <param name="quality" value="high"> <embed src="./myobject.swf" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="19" height="5"></embed> </object>
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now