OK, I will have to read this a few times to digest it totally, but I do have HSC connected and make great use of it. I also do use the FSDN, just started with it though. ----- Original Message ----- From: "Geoff Chapman" <gch@xxxxxxxxxxxxxxxx> To: <jawsscripts@xxxxxxxxxxxxx> Sent: Friday, January 08, 2010 11:10 AM Subject: [jawsscripts] Re: GetTextInFrame > Hi Gian. > > well, I also never worked out how to achieve with direct scripting calls, > what can > be done more specificly using menu/wizard style front end within frames > manager itself, > regarding grabbing text of only certain colors within the Frames Construct > from within a script. > > so, what I ended up dooen to get around this in my work, was I started > using > another function called > > GetTextInRect () > > instead. and then carefully worked out the actual absolute screen Left, > top, right and bottom coordinates of that rectangle/frame, which of course > make up the first 4 parameters of the GetTextInRect function. > This is not actually quite as easy as it may sound, because when you put > your mouse on a line of text, and mark the top left, and bottom right hand > corners of the frame, > Jaws Makes some smart adjustments/tweaks to those coordinates, such that > all > the pixels which make up the text, are properly included in the frame > size, > no matter what their height/font size might be. > check out the positioning tab, in the Frames Properties, remembering > though > that they have been taken relative to application window boarders, and not > to absolute screen boarders, which is all that Alt+delete out of the box, > reports. > usually though you can subtract 3 pixels each way, to arrive at an > absolute > coordinate, seems to be about standard. > > and so you have to insure manually that you replicate this, when you > define > your absolute screen coordinates > e.g. ... ok this gets a bit complicated. and I don't know if you've got > hsc > connected to this scratchLive aplication or not. but it is critical if > you > wanna use GetTextInRect, that > you get these absolute screen coordinates accurate, such that they > properly > encompass the text at that location correctly. In my testings here, I > found > that > the leftHand Coordinate, could be left pretty much at the same absolute x > screen coordinate that alt+delete reports, when your jaws cursor is on the > first letter of the text of the relevant frame. > For the top coordinate though, I've found that often, subtracting about 7 > pixels > from the alt+delete Y coordinate readOut at that same spot, would often > suffice for the top of the rectangle coordinate. > For the RightHand coordinate, after taking the jaws cursor to the far > right > hand > letter, or position where letters can be written, you might add, about > 8 pixels to this figure, before plugging it into the rightHand coord of > GetTextInRect. > and for the Bottom, I'd look at the height of the Frame, in the > positioning > tab, and make a guestimate on that. because it can depend on how large the > font is, of the text your talking about, as to the necessary height. the > Frames manager, > as I say, makes intelligent judgements about that during the definition > process, so, the idea is to try and build your getTextInRect off that. > > thus, if the frame height was, say, 13 pixels high, then you'd add 13 > pixels > to your top coordinate, to arrive at your bottom edge coordinate. > > > Here's the fsdn take on GetTextInRect. I usually leave a 0 as the fifth > parameter, and as it points out, the IgnoreColor, if I don't know the > foreground or background color of my text. > Do you have the fsdn and are you familiar with searching it for some > admittedly terseish definitions of functions? > > Function: GetTextInRect > Description > This function gets text inside a rectangle specified by four points on the > screen representing the top, bottom, left, and right boundaries of the > rectangle. > Returns > Type: String > Description: Text inside the rectangle. > Parameters > Param 1: > Type: Int > Description: Left edge of rectangle. > Include: Required > Param 2: > Type: Int > Description: top edge of rectangle. > Include: Required > Param 3: > Type: Int > Description: right edge of rectangle. > Include: Required > Param 4: > Type: Int > Description: bottom edge of rectangle. > Include: Required > Param 5: > Type: Int > Description: attributes of text to include. Use 0 to include all text or > use > a combination of attribute flags to only return text with those > attributes. > Include: Optional > Param 6: > Type: Int > Description: color of text to include, use IgnoreColor constant for any > color. > Include: Optional > Param 7: > Type: Int > Description: background color of text to include. > Include: Optional > Param 8: > Type: Int > Description: Whether or not to add line breaks or to get the text as one > long string. > Include: Optional > Param 9: > Type: Int > Description: The prefered coordinate system in which the value should be > returned This is only a recommendation and will not work in all places. > See > the COORDSYS_xxx constants in hjconst.jsh. > Include: Optional > Version > This function is available in the following releases: > PAC Mate 1.10 and later > JAWS 4.51 and later > Magic 10.5 and later > > > > > ----- Original Message ----- > From: "GianniP46" <giannip46@xxxxxxxxxxxxx> > To: <jawsscripts@xxxxxxxxxxxxx> > Sent: Friday, January 08, 2010 5:33 PM > Subject: [jawsscripts] Re: GetTextInFrame > > >> ok, thanks I got this working now, but I only need text with certain > colors spoken. I know how to do this in the frame manager, but can you > get > this to work with the GetTextInFrame Function? >> In other words can you only get text with specific attributes? >> ----- Original Message ----- >> From: Geoff Chapman >> To: jawsscripts@xxxxxxxxxxxxx >> Sent: Thursday, January 07, 2010 9:57 PM >> Subject: [jawsscripts] Re: GetTextInFrame >> >> hi Gian. >> >> I can probably speak somewhat into this one, but I just haven't been > able to >> make the time to do it properly! never enough time! >> >> but, in very basic untested form, which I realize is not how you've > asked >> for it, wouldn't you just wanna do something like: >> define CrateName as a local or global string variable, let's say local > for >> sake of argument near the beginning of your script, after the term >> var >> to denote variable list, (though in all standard protocol you should > really >> probably call it, >> var >> string sCrateName >> >> ; (the preceeding lower case s, indicating that it's a string >> variable, >> ; wouldn't you then just do something like: >> let sCrateName = GetTextInFrame ("MyFrameName") >> if StringContains (sCrateName, "TextToWatchFor") then >> ; do whatever you need. >> EndIf >> >> something like that? >> >> however what I'm not sure about here is, and what I do keep insisting > you >> reeally need to work on getting down too if your gunna work with >> frames, > is >> to insure that their validation criteria is accurate. i.e. that their >> WindowTitle, or Class parameter, far more often the former than the > latter >> is problematic in my experience, >> is not breaking the frame from working. >> >> gotta run. see how you go with this so far. >> >> >> >> ----- Original Message ----- >> From: "GianniP46" <giannip46@xxxxxxxxxxxxx> >> To: "JawsScriptsList" <JawsScripts@xxxxxxxxxxxxx> >> Sent: Tuesday, January 05, 2010 2:57 PM >> Subject: [jawsscripts] GetTextInFrame >> >> >> > Hi all, >> > Can someone give me some sample code to get the text that is in a > frame >> that is already defined and have that text assigned to a string >> variable >> called CrateName. >> > I am trying to check a frame to see if it contains certain text. If > it >> does, then I need to do something in particular. >> > Thanks! >> > >> > >> > Gian Pedulla >> > GianniP46@xxxxxxxxxxxxx >> > >> > LETS! GO! METS! >> > __________ >> > 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 >> >> >> >> -------------------------------------------------------------------------- > ---- >> >> >> >> No virus found in this incoming message. >> Checked by AVG - www.avg.com >> Version: 9.0.725 / Virus Database: 270.14.129/2606 - Release Date: > 01/07/10 14:35:00 >> >> __________ >> 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 > > __________ 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