You could also access menu items if you know a particular item's resource ID. You can catch these IDs by either watching for WM_COMMAND messages when executing menu items of interest or by hooking directly into resource table through whatever tools, like resource hacker. Bryan Garaventa wrote: > This is copied from one of my prior scripts. > > SpeechOff () > > var object o, int cid, > > string stv, handle gw > > {alt+o} > > Pause () > > let o = GetObjectAtPoint (cid, GetCursorCol (), GetCursorRow ()) > > o.accDoDefaultAction(6) > > Pause () > > ; ... script continues with SpeachOn(), etc. > > > The only way I was able to make this work, was by first manually activating > the menu, so Doug is right, I believe it does have to be visible first. > > > ----- Original Message ----- > From: "Doug Lee" <doug.lee@xxxxxxxxxxxxxxxx> > To: <jawsscripts@xxxxxxxxxxxxx> > Sent: Tuesday, December 23, 2008 1:05 PM > Subject: [jawsscripts] Re: Searching menu structures for a particular menu > item > > >> Come to think of it, this probably won't really help much after all. >> You can find menus and menu items in MSAA, but I don't think you can >> activate a menu option without first making it visible on screen. I >> believe the menuItem codes mentioned earlier in this thread, locatable >> with WinDig, would allow you to execute menu items. The JAWS >> SendMessage function should let you do that without AutoIt though. >> >> As far as sample code, there was some in the Skype scripts, probably in >> SkypeUtil.jsl; but I don't think it's there anymore. I don't have to >> do this very often. >> >> On Tue, Dec 23, 2008 at 03:58:27PM -0500, Andy Borka wrote: >> Hi. Do you have any example code that searches for particular menu items? >> How do you deal with the top level menus in the menu bar (telling what one >> is what)? >> >> >> Twitter: www.twitter.com/sonfire >> >> >> -----Original Message----- >> From: jawsscripts-bounce@xxxxxxxxxxxxx >> [mailto:jawsscripts-bounce@xxxxxxxxxxxxx] On Behalf Of Doug Lee >> Sent: Tuesday, December 23, 2008 2:50 PM >> To: jawsscripts@xxxxxxxxxxxxx >> Subject: [jawsscripts] Re: Searching menu structures for a particular menu >> item >> >> It's a bit more involved than I can recall or fully describe here, but >> here are the main ingredients I remember: >> >> 1. Get the menubar object with >> GetObjectFromEvent(getTopLevelWindow(getFocus()), ObjID_Menu, 0, childID). >> ChildID is a placeholder. >> >> 2. The menubar's items will be indexable by childIDs starting at 1, >> so for "File View Window Help," "Window" should be o.accName(3). To >> get its object, do o.accChild(3). You can of course search through >> these with a loop that runs from 1 through o.accChildCount inclusive. >> >> 3. A menubar item has one child in MSAA: The pop-up menu associated with >> it. >> To get that, do .accChild(1) on what you got in the previous step. >> >> 4. The menu you now have has menu items much like the menubar did, >> each with its own pop-up menu where applicable. Start again at step 2 >> to search deeper. >> >> Tip: JAWS now has functions that search MSAA object trees for names. >> If this works for menu hierarchies, and depending on your needs once >> you find something, that may significantly decrease the level of >> effort required for your situation. >> >> On Tue, Dec 23, 2008 at 02:37:38PM -0500, Jamal Mazrui wrote: >> There is not a way to do this natively through JAWS, except possibly by >> searching the MSAA hierarchy associated with a menu. I don't know how >> to do that, but Doug Lee might .... >> >> If you are willing to install a free COM server, AutoIt, >> http://AutoItScript.com >> >> includes the method documented below. Another approach is to get the ID >> of the menu item of interest via WinDig >> http://EmpowermentZone.com/wdsetup.exe >> and invoke it with a PostMessage call. >> >> Jamal >> >> >> WinMenuSelectItem >> >> >> Invokes a menu item of a window. >> >> WinMenuSelectItem "title", "text", "item" [, "item" [, "item" [, "item" >> [, >> "item" [, "item" [, "item"]]]]]] >> >> >> Parameters >> titleThe title of the window to read. >> textThe text of the window to read. >> itemText of Menu Item >> item(optional) Text of SubMenu item >> item(optional) Text of SubMenu item >> item(optional) Text of SubMenu item >> item(optional) Text of SubMenu item >> item(optional) Text of SubMenu item >> item(optional) Text of SubMenu item >> >> >> Return Value >> Success:Returns 1. >> Failure:Returns 0 if the menu could not be found. >> >> >> Remarks >> You should note that underlined menu items actually contain a & >> character to >> indicate the underlining. Thus, the menu item File would actually >> require the >> text "&File", and Convert would require "Con&vert" You can access menu >> items >> up to six levels deep; and the window can be inactive, minimized, and/or >> even >> hidden. >> >> WinMenuSelectItem will only work on standard menus. Unfortunately, many >> menus >> in use today are actually custom written or toolbars "pretending" to be >> menus. >> This is true for most Microsoft applications. >> >> >> Related >> ControlCommand, Send >> >> Example >> Set oAutoIt = WScript.CreateObject("AutoItX3.Control") >> >> ' This will select File, Page Setup in notepad >> oAutoIt.WinMenuSelectItem "Untitled - ", "", "&File", "Page Set&up..." >> >> On >> Tue, 23 Dec >> 2008, Andy Borka wrote: >> >>> Date: Tue, 23 Dec 2008 08:35:46 -0500 >>> From: Andy Borka <andy@xxxxxxxxxxxxxxxxxxx> >>> Reply-To: jawsscripts@xxxxxxxxxxxxx >>> To: jawsscripts@xxxxxxxxxxxxx >>> Subject: [jawsscripts] Searching menu structures for a particular menu >>> item >>> >>> I have a particular menu structure that I need to search through in order >> to >>> get to a particular menu item. I know the text on the menu item I want to >>> find but the placement of the menu items change depending on what "view" >> you >>> are on in the program. How would I go about searching for and then >>> activating the menu item (or giving an error message if it can't be >> found)? >>> Twitter: www.twitter.com/sonfire >>> >>> >>> >>> >>> __________? >>> Visit and contribute to The JAWS Script Repository http://jawsscripts.com >>> >>> View the list's information and change your settings at >>> http://www.freelists.org/list/jawsscripts >>> >> __________? >> Visit and contribute to The JAWS Script Repository http://jawsscripts.com >> >> View the list's information and change your settings at >> http://www.freelists.org/list/jawsscripts >> >> -- >> Doug Lee, Senior Accessibility Programmer >> SSB BART Group - Accessibility-on-Demand >> mailto:doug.lee@xxxxxxxxxxxxxxxx http://www.ssbbartgroup.com >> "While they were saying among themselves it cannot be done, >> it was done." --Helen Keller >> __________ >> Visit and contribute to The JAWS Script Repository http://jawsscripts.com >> >> View the list's information and change your settings at >> http://www.freelists.org/list/jawsscripts >> >> >> __________? >> Visit and contribute to The JAWS Script Repository http://jawsscripts.com >> >> View the list's information and change your settings at >> http://www.freelists.org/list/jawsscripts >> >> -- >> Doug Lee, Senior Accessibility Programmer >> SSB BART Group - Accessibility-on-Demand >> mailto:doug.lee@xxxxxxxxxxxxxxxx http://www.ssbbartgroup.com >> "While they were saying among themselves it cannot be done, >> it was done." --Helen Keller >> __________ >> Visit and contribute to The JAWS Script Repository http://jawsscripts.com >> >> View the list's information and change your settings at >> http://www.freelists.org/list/jawsscripts >> >> >> _______________________________________ >> No viruses found in this incoming message >> Scanned by iolo AntiVirus 1.5.6.3 >> http://www.iolo.com >> > > __________ > Visit and contribute to The JAWS Script Repository http://jawsscripts.com > > View the list's information and change your settings at > http://www.freelists.org/list/jawsscripts > > __________ Visit and contribute to The JAWS Script Repository http://jawsscripts.com View the list's information and change your settings at http://www.freelists.org/list/jawsscripts