MHz Posted August 10, 2006 Share Posted August 10, 2006 (edited) Here is an issue if using Com with a Dictionary object. In brief summary, a Dictionary object can store any data type. Similar as to a collection, it store Keys and Items. These Key and Items can be Added, Read, Written and removed. The Item property supports Read and Write while the Key property is Write only. The issue is with the Write ability of both Item and Key properties. This could be regarded as a Bug of AutoIt Com, or a feature that has not been implemented yet. So I will add it here for review. Some basic examples VBScript write to the Item property Dim oDict Set oDict = CreateObject("Scripting.Dictionary") If IsObject(oDict) Then oDict.Add "One", "Same" oDict.Item ("One") = "Changed" 'write MsgBox oDict.Item ("One") End If AutoIt write to the Item property Global $oDict $oDict = ObjCreate('Scripting.Dictionary') If IsObj($oDict) Then $oDict.Add ('One', 'Same') $oDict.Item ('One') = 'Changed' ;write MsgBox(0, '', $oDict.Item ('One') ) EndIf VBScript works with the write while AutoIt does not. "Changed" should be the result shown in the MsgBox of both. Neither ot the above examples give error and seems like the " = 'Changed' " is completely ignored by AutoIt. Trying to write to a Key property will only produce an error with AutoIt. Any reason why Write (sometimes refered as to Set) to a Dictionary property is not achievable with AutoIt Com? Or perhaps any other property write without prior check if possible? Edit: Changed to valid comment character in VBScript example. Edited August 10, 2006 by MHz Link to comment Share on other sites More sharing options...
MHz Posted August 15, 2006 Author Share Posted August 15, 2006 *Bump* Time for another review for help on this. Link to comment Share on other sites More sharing options...
DaleHohm Posted August 15, 2006 Share Posted August 15, 2006 *Bump*Time for another review for help on this. I played around with this for a bit when you first posted it. I see nothing wrong with it and tossing in .value onto the objects didn't change anything (as it did with another COM problem recently worked). Assuming it works in VBS, then I'd suggest moving this to a bug and see if Sven can take a look at it.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 Link to comment Share on other sites More sharing options...
MHz Posted August 16, 2006 Author Share Posted August 16, 2006 Thankyou Dale for your time spared to look at this issue, along with anyone else who did. I have posted this issue in the Bug Forum here so it can move forward to hopefully being fixed. Link to comment Share on other sites More sharing options...
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