I believe it was Jaws 7.1One of the enhancements to that function that I have been lobbying for is to have a 10th argument (a boolean true/false) that would allow us to use an object name that contains the designated text, not just an exact match, which is what it is currently.
For example, when looking for the User status: object, which may be either"User status: Online", or Busy, or Off line, or Out to Lunch, etc., we could just tell it to get the info from the object where the name contains the text "User status:", and not need an exact match. Another place would be in Outlook or OE6, where the status line might say "43 new messages." If that is the object's name, then the message count constantly changing would mean we could never use this function to retrieve that data. But if we could just have the function return the data for the object that contains the text "new messages," then that function could be used nicely in that situation.
So far, no luck. Thanks, Dennis Brown----- Original Message ----- From: "Geoff Chapman" <gch@xxxxxxxxxxxxxxxx>
To: <jawsscripts@xxxxxxxxxxxxx> Sent: Tuesday, March 11, 2008 6:40 AM Subject: [jawsscripts] Re: getObjectInfoByName
wow dennis this was excellent! thanks heaps for spending the time to write all this out for us. may I ask when this function was introduced into jaws?was it only with 9?----- Original Message ----- From: "Dennis Brown" <DennisTBrown@xxxxxxxxxxx>To: <jawsscripts@xxxxxxxxxxxxx> Sent: Tuesday, March 11, 2008 9:04 AM Subject: [jawsscripts] Re: getObjectInfoByNameHi Jackie,We created that command, as well as ClickObjectByName specifically becauseof the Windows Live group of applications that have a single window with lots of objects scattered throughout, so I'll use the Windows Live Messenger history window as the example here. The function takes several parameters, some just empty variables that thefunction populates when it is called, so you have to declare the variablesused. GetObjectInfoByName(1=Handle,2=ObjectName,3=Instance,4=Type, 5=State, 6=Value, 7=Description, 8=HotKey, 9=ParentContainer) We'll use the following variables to hold the values returned by the function: var int iObjectType, int iObjectState, string sObjectValue, string sDescription, string sHotkey, string sContainer 1. Handle: Handle of window containing the object, such as GetAppMainWindow(GetFocus()) 2. String: Name of the desired object, such as "History". 3. Integer: Instance of the object, for those times where there may bemorethan a single object with the desired name.For example, in WLM, there are 2 history windows; the first being the truehistory window, and the second being the tool tip that pops up with thelastthread of the conversation. This second history object does not have the sender's name, and after it is displayed, the sender's name and the newthread is appended to the first history object's value string. So in thiscase, since there are two objects named "History", we want the first, soweuse an integer value of 14. Integer iObjectType: The object's type is returned as an integer value.For example, 43=ReadOnly edit, 66=Multilined edit, 1=Button, etc.5. Integer iObjectState: Contain the object's state flags. This will be acombination of Control Attribute identifiers defined in HJCONST.JSH. Here they are: ;Control Attribute identifiers CTRL_NONE = 0, CTRL_CHECKED = 1, CTRL_UNCHECKED = 2, CTRL_GRAYED = 4, CTRL_DISABLED = 8, CTRL_SUBMENU = 16, CTRL_PRESSED = 32, CTRL_OPENED=64, CTRL_CLOSED=128, CTRL_SELECTED=256, CTRL_SINGLELINE=512, CTRL_MULTILINE=1024, CTRL_EXPANDED=2048, CTRL_COLLAPSED=4096, CTRL_HASCHILDREN=8192, CTRL_VISITED=0x4000, CTRL_Indeterminate=0x8000, CTRL_PARTIALLY_CHECKED = 32770, 6. String sObjectValue contains the value string of the object. In the History object, it will be the entire conversation, with the sender nameandthreads separated by carriage returns characters. 7. Optional: String sDescription is the object's description stringreturnedby the function. 8. Optional: String sHotkey, if it has one, otherwise it is an emptystring.9. Optional: String sContainer is he object that contains the object desired, or the parent object. Here is an example of retrieving the value string of the WLM Historyobject,then announcing the last thread sent. Since the function itself returns a true if the object was found, and a false if not, we'll check for that first: Function AnnounceLastThread() var int iType, int iState, string sValue, string sSender, string sThread If !GetObjectInfoByName(GetAppMainWindow(GetFocus()),"History", 1,iType,iState,sValue) Then Say("Object not found.",ot_error) Return EndIf ; Found it, so grab the last and second to the last strings, delimited by return characters... let sSender=StringSegmentIndex(sValue,"\r",-2) let sThread=StringSegmentIndex(sValue,"\r",-1) ; Now announce those puppies... Say(sSender,ot_screen_message) Say(sThread,ot_screen_message) EndFunction So if you had just sent a message, telling the person to go soak their head, the function would cause Jaws to say: Jackie says: Go soak your head. Hope this helps! Thanks, Dennis Brown----- Original Message ----- From: "Jackie McBride" <abletec@xxxxxxxxx>To: <jawsscripts@xxxxxxxxxxxxx> Sent: Monday, March 10, 2008 12:15 AM Subject: [jawsscripts] getObjectInfoByName > Could some1 please give me a code snippet of how to use this? This > object stuff is about 2 drive me bats. > > -- > Jackie McBride > Please join my fight against breast cancer > <http://teamacs.acsevents.org/site/TR?px=1790196&pg=personal&fr_id=3489> > & Check out my homepage at: > www.abletec.serverheaven.net > __________ > View the list's information and change your settings at > //www.freelists.org/list/jawsscripts > > __________ View the list's information and change your settings at //www.freelists.org/list/jawsscripts__________ View the list's information and change your settings at //www.freelists.org/list/jawsscripts
__________View the list's information and change your settings at //www.freelists.org/list/jawsscripts