![]() |
KnowBrainer Speech Recognition | ![]() |
Topic Title: Offering a new utility: Screen Grid Topic Summary: a multi-monitor aware replacement for "Mouse Grid" Created On: 07/26/2020 11:32 AM Status: Post and Reply |
|
![]() |
![]() |
- Edgar | - 07/26/2020 11:32 AM |
![]() |
![]() |
- G.J. Premo | - 07/27/2020 04:56 PM |
![]() |
![]() |
- Edgar | - 07/27/2020 08:15 PM |
![]() |
![]() |
- Edgar | - 07/27/2020 08:18 PM |
![]() |
![]() |
- Edgar | - 07/27/2020 08:21 PM |
![]() |
![]() |
- Matt_Chambers | - 07/28/2020 10:08 AM |
![]() |
![]() |
- Edgar | - 07/28/2020 01:25 PM |
![]() |
![]() |
- kkkwj | - 07/28/2020 03:21 PM |
![]() |
![]() |
- alexander | - 07/29/2020 01:35 AM |
![]() |
![]() |
- Edgar | - 07/29/2020 10:50 AM |
![]() |
![]() |
- G.J. Premo | - 07/29/2020 06:43 PM |
![]() |
![]() |
- Edgar | - 07/30/2020 09:58 AM |
![]() |
![]() |
- G.J. Premo | - 07/30/2020 11:53 AM |
![]() |
![]() |
- G.J. Premo | - 07/30/2020 12:10 PM |
![]() |
![]() |
- Edgar | - 07/30/2020 12:55 PM |
![]() |
![]() |
- Edgar | - 07/31/2020 01:38 PM |
![]() |
![]() |
- G.J. Premo | - 07/30/2020 01:36 PM |
![]() |
![]() |
- Edgar | - 07/30/2020 04:49 PM |
![]() |
![]() |
- Edgar | - 07/31/2020 02:38 PM |
![]() |
![]() |
- Edgar | - 08/02/2020 09:41 AM |
![]() |
|||
[EDIT: trying again - the Dropbox links are for the most current version!] If you want just the application you can get it from my Dropbox: https://www.dropbox.com/s/hiscs88y7vus828/ScreenGridApp1.0.zip?dl=0 If you want the entire Microsoft Visual Solution 2017 solution: https://www.dropbox.com/s/htqw5x2h3wg188n/ScreenGridSolution1.0.zip?dl=0 Screen Grid (ScreenGrid.exe) I've written a multi-monitor aware replacement for Nuance’s Dragon utility "Mouse Grid"; released as public domain as a Microsoft Visual Studio 2017 C# project. The application creates a semi-transparent window the size of the entire multi-monitor screen (regardless of the monitors’ arrangement); a grid is drawn with a maximum of 26 columns (labeled with the ASCII letters A-Z) and 10 rows (labeled with the ASCII numerals 1-10). Each cell is labeled with the column letter and row number: A1-Z10. The attached Readme file has all the new details.
------------------------- -Edgar |
|||
|
|||
![]() |
|||
Need some help here, since I don't know how to use list variables.
"the second, a "Screen Grid" application-specific script whose name will consist solely of two lists: " <1to10>". The list "ica_complex" will, at a minimum, contain all the ASCII letters a-z (and need not be "complex"). The script itself looks like this:" Is the script itself given a name? Or is the name of the script "<1to10>ica_complex" I've got Larry Allen's scripting book open, but I can't figure it out from the foregoing. |
|||
|
|||
![]() |
|||
Sorry, it seems that when I pasted that message into the forum some information was lost! <ica_complex> <1to10> to invoke it (I think it's a VERY good idea to make sure that the script is "application-specific") all one says is "A 5" or "Alpha 5" etc.; the first list variable consists of a single letter (a-z) and the second list variable consists of a single integer (1-10). ------------------------- -Edgar |
|||
|
|||
![]() |
|||
With the exception of two late-breaking strings I now have language localization working for the translation. The next step will be to install layout code to ensure that there is room when the translated string is larger than the original string. I've done it for other applications, the code is quite complicated but fairly straightforward.
------------------------- -Edgar |
|||
|
|||
![]() |
|||
The readme text file attached to the first post has the proper information - I used copy and paste directly from Notepad to here but, as others have noted, pasting into the forum has problems when certain characters are encountered.
------------------------- -Edgar |
|||
|
|||
![]() |
|||
Good stuff, Edgar. Thanks for sharing this.
Matt |
|||
|
|||
![]() |
|||
Once you utter a grid reference (e.g. "alpha 3") the mouse pointer jumps to the middle of the appropriate grid square. At that point you may say "button click" or "mouse click" which will dismiss the grid leaving the mouse cursor hovering at that location. For now, if you need more magnification I would suggest using Windows’ built-in Magnifier. I have two commands: Start Magnifier Sub Main SendKeys "{WindowsHold}{Pad+}" End Sub
Close Magnifier Sub Main SendKeys "{WindowsHold}{Esc}" End Sub ------------------------- -Edgar |
|||
|
|||
![]() |
|||
Thank you Edgar (and Mark, who also has posted (on Github)). I remember that Caster had some nice grids, but they're in Python, and that's a whole different kettle of fish.
------------------------- Win10/11/x64, AMD Ryzen 7 3700X/3950X, 64/128GB RAM, Dragon 15.3, SP 7 Standard, SpeechStart, Office 365, KB 2017, Dragon Capture, Samson Meteor USB Desk Mic, Amazon YUWAKAYI headset, Klim and JUKSTG earbuds with microphones, excellent Sareville Wireless Mono Headset, 3 BenQ 2560x1440 monitors, Microsoft Sculpt Keyboard and Logitech G502 awesome gaming mouse. |
|||
|
|||
![]() |
|||
Thanks for sharing Edgar. Have you put this on git somewhere?
Oh and just in case anybody else spent a few minutes trying to figure this out.. When Edgar says accelerator key he means the alt key :-) so if you want to test it, press alt-m, , 1-10, after which you can tell your voice system to click or double-click as the case maybe. |
|||
|
|||
![]() |
|||
I have a git account but I have not figured out how to use it <grin>. I'm a hermit and rarely collaborate on code; maybe I'm too old to learn new tricks! SendKeys "%ep", 1 which, in Screen Grid, deploys the Edit menu item’s Preferences item (of course this item also has its keyboard shortcut <CTRL>p. ------------------------- -Edgar |
|||
|
|||
![]() |
|||
When I utter "alpha 3", the only thing that happens is that a Menu appears under "Mouse" to the right of "A", which is highlighted on "1". |
|||
|
|||
![]() |
|||
Please post the script you are using to drive Screen Grid - is it Dragon or KnowBrainer? What OS? Windows 7 has a known bug; try this:
Sub Main Dim column, row As String
If InStr(ListVar1, "/") = 0 Then column = Mid(ListVar1, 1, 1) Else column = Mid(ListVar1, 1, InStr(ListVar1, "\") - 1) End If column = LCase (column) row = CStr (ListVar2) SendKeys "%m", 1 Wait 0.2 SendKeys column, 1 Wait 0.1 SendKeys row, 1 ' if the "row" accelerator fails to deploy, but is highlighted, try adding these two lines: Wait 0.1' this might need to be longer SendKeys "{Enter}", 1 End Sub ------------------------- -Edgar |
|||
|
|||
![]() |
|||
I am using the script that you posted. OS is Windows 8.1 Sub Main I'll try your suggested change. |
|||
|
|||
![]() |
|||
The change doesn't help, even with a Wait of 0.5. All that happens with the change is that the accelerators disappear, mouse doesn't move, and all that can be done at that point is to close ScreenGrid. I'll have to stick to the old script, and do the mouse movements in two parts, "alpha 3" and then when the accelerators appear "3". |
|||
|
|||
![]() |
|||
Again - OS? Is the script a Dragon or KnowBrainer script? Screen Grid spacific: <ica_complex>
Sub Main Dim column As String
If InStr(ListVar1, "/") = 0 Then column = Mid(ListVar1, 1, 1) Else column = Mid(ListVar1, 1, InStr(ListVar1, "\") - 1) End If column = LCase (column) SendKeys "%m", 1 Wait 0.2 SendKeys column, 1 End Sub __________________________ Note that with this version you simply say the column letter (e.g. alpha, delta etc.); after the appropriate sub-menu opens under the integer. Please post your list of integers. ------------------------- -Edgar |
|||
|
|||
![]() |
|||
Good news and bad… I have the same problem with a Dragon script - I can't solve it. Obviously, there's a difference between the scripting engine between DPI 15.3 and KnowBrainer - duh. Maybe when the new update is available for DPI the problem will magically go away. In the meantime, I beefed up my KnowBrainer script <1to10> so it has become <1to10_complex>: 1\one 2\two 2\to 2\too 3\three 4\four 4\for 5\five 6\six 6\sex 7\seven 8\eight 8\ate 9\nine 10\ten 10\tin 1 2 3 4 5 6 7 8 9 10 and I've beefed up the driver script:
<ica_complex> <1to10_complex>
Sub Main
Dim column, row As String If InStr(ListVar1, "/") = 0 Then column = Mid(ListVar1, 1, 1) Else column = Mid(ListVar1, 1, InStr(ListVar1, "\") - 1) End If column = LCase (column) If InStr(ListVar2, "/") = 0 Then row = Mid(ListVar2, 1, 1) Else row = Mid(ListVar2, 1, InStr(ListVar2, "\") - 1) End If row = CStr (ListVar2) SendKeys "%m", 1 Wait 0.2 SendKeys column, 1 Wait 0.1 SendKeys row, 1 End Sub ------------------------- -Edgar |
|||
|
|||
![]() |
|||
OS is still Windows 8.1, as I stated in my reply of 8:53 a.m. today. I don't have Knowbrainer, the script is in Dragon. ica_complex is copied from yours, without the punctuation marks: A\Cap alpha |
|||
|
|||
![]() |
|||
The failure of the second accelerator key is known issue with Windows 8.1; adding the: SendKeys "{Enter}", 1 should resolve the problem. Sorry I missed your OS description in the previous post! Additionally, I have not tested with Dragon only KnowBrainer - will do that today. ------------------------- -Edgar |
|||
|
|||
![]() |
|||
I need to do some layout fine-tuning but Preferences and Localization are now working: ------------------------- -Edgar |
|||
|
|||
![]() |
|||
I now have a working script for Dragon; again good news/bad news - the good news is that it works the bad news is that it is slow as molasses. Sub Main Dim column, row, words() As String Dim iColumn, iRow As Integer
If InStr(ListVar1, "/") = 0 Then column = Mid(ListVar1, 1, 1) Else column = Mid(ListVar1, 1, InStr(ListVar1, "\") - 1) End If column = UCase (column) If InStr(ListVar2, "\") = 0 Then row = ListVar2 Else words = Split(ListVar2, "\") row = words(0) End If iRow = CInt (row)
SendSystemKeys "{alt+m}"
iColumn = 0 If column = "B" Then iColumn = 1 ElseIf column = "C" Then iColumn = 2 ElseIf column = "D" Then iColumn = 3 ElseIf column = "E" Then iColumn = 4 ElseIf column = "F" Then iColumn = 5 ElseIf column = "G" Then iColumn = 6 ElseIf column = "H" Then iColumn = 7 ElseIf column = "I" Then iColumn = 8 ElseIf column = "J" Then iColumn = 9 ElseIf column = "K" Then iColumn = 10 ElseIf column = "L" Then iColumn = 11 ElseIf column = "M" Then iColumn = 12 ElseIf column = "N" Then iColumn = 13 ElseIf column = "O" Then iColumn = 14 ElseIf column = "P" Then iColumn = 15 ElseIf column = "Q" Then iColumn = 16 ElseIf column = "R" Then iColumn = 17 ElseIf column = "S" Then iColumn = 18 ElseIf column = "T" Then iColumn = 19 ElseIf column = "U" Then iColumn = 20 ElseIf column = "V" Then iColumn = 21 ElseIf column = "W" Then iColumn = 22 ElseIf column = "X" Then iColumn = 23 ElseIf column = "Y" Then iColumn = 24 ElseIf column = "Z" Then iColumn = 25 End If If iColumn > 0 Then For increment = 1 To iColumn SendSystemKeys "{Down}" Next increment End If
SendSystemKeys "{Right}" If iRow > 1 Then For increment = 1 To (iRow - 1) SendSystemKeys "{Down}" Next increment End If
SendSystemKeys "{Enter}" End Sub ------------------------- -Edgar |
|||
|
FuseTalk Standard Edition v4.0 - © 1999-2023 FuseTalk™ Inc. All rights reserved.