KnowBrainer Speech Recognition
Decrease font size
Increase font size
Topic Title: Offering: Window Grid
Topic Summary: A multi-monitor aware window-specific mouse grid
Created On: 08/10/2020 01:35 PM
Status: Post and Reply
Linear : Threading : Single : Branch
 Offering: Window Grid   - Edgar - 08/10/2020 01:35 PM  
 Offering: Window Grid   - Matt_Chambers - 08/10/2020 03:05 PM  
 Offering: Window Grid   - Edgar - 08/10/2020 03:28 PM  
 Offering: Window Grid   - Matt_Chambers - 08/10/2020 04:50 PM  
 Offering: Window Grid   - Edgar - 08/10/2020 06:03 PM  
 Offering: Window Grid   - Matt_Chambers - 08/10/2020 06:15 PM  
 Offering: Window Grid   - Edgar - 08/10/2020 06:47 PM  
 Offering: Window Grid   - Matt_Chambers - 08/10/2020 07:42 PM  
 Offering: Window Grid   - Edgar - 08/11/2020 10:30 AM  
 Offering: Window Grid   - Matt_Chambers - 08/11/2020 11:29 AM  
 Offering: Window Grid   - Edgar - 08/11/2020 01:45 PM  
 Offering: Window Grid   - kkkwj - 08/09/2021 12:55 AM  
 Offering: Window Grid   - Edgar - 08/09/2021 10:38 AM  
 Offering: Window Grid   - kkkwj - 08/09/2021 05:38 PM  
 Offering: Window Grid   - Edgar - 08/09/2021 05:58 PM  
 Offering: Window Grid   - kkkwj - 08/09/2021 09:10 PM  
Keyword
 08/10/2020 01:35 PM
User is offline View Users Profile Print this message

Author Icon
Edgar
Top-Tier Member

Posts: 1416
Joined: 04/03/2009

Window Grid (WindowGrid.exe)

A multi-monitor aware replacement for Nuance’s Dragon utility "Mouse Grid" which puts the grid on the currently active window; released as public domain as a Microsoft Visual Studio 2017 C# project. The application creates a semi-transparent window the size of the active window; 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.

Just the application:
https://www.dropbox.com/s/ezb48icykiq4o02/WindowGridApp0.0.zip?dl=0

The entire Microsoft Visual Studio solution:
https://www.dropbox.com/s/k0dpduqdwfv1k4z/WindowGridSolution0.0.zip?dl=0

Even though extensively tested by me I consider this a beta version as no one else has tried it!

The attached readme text file as lots of details.






-------------------------

-Edgar
DPI 15.3, 64-bit Windows 10 Pro, OpenOffice & Office 365, Norton Security, Shure X2U XLR to USB mic adapter with Audio Technica DB135 vocal mic & Shokz OpenComm UC version 1 wireless headset, Asus X299-Deluxe Prime, Intel Core i9-7940X (14 core, 4.3 GHz overclocked to 4.9 GHz), G.SKILL TridentZ Series 64GB (4 x 16GB) DDR4 3333 (PC4 26600) F4-3333C16Q-64GTZ, NVIDIA GIGABYTE GeForce GTX 1060 GV-N1060G1 GAMING-6GD REV 2.0 6GB graphics card with 3 1920x1080 monitors



 08/10/2020 03:05 PM
User is offline View Users Profile Print this message

Author Icon
Matt_Chambers
Top-Tier Member

Posts: 839
Joined: 08/09/2018

Cool app, Edgar! Thanks for sharing.

Bug report: when I run the executable, I just get a little translucent bar in the upper left corner, like the app is minimized.  Edit:  When I maximize the app, I get a translucent overlay, but no grid.



 08/10/2020 03:28 PM
User is offline View Users Profile Print this message

Author Icon
Edgar
Top-Tier Member

Posts: 1416
Joined: 04/03/2009

Originally posted by: Matt_Chambers Bug report: when I run the executable, I just get a little translucent bar in the upper left corner, like the app is minimized.  Edit:  When I maximize the app, I get a translucent overlay, but no grid.

 

That's not a bug that's a fatal error! Are you trying to execute the application by double-clicking on its icon? Although, that should force it into "Screen Grid" mode. The way it is supposed to work is to have some other window have focus (the active window) then say "window grid" or "window grid X by Y" (where X is the number of columns you desire and Y is the number of rows desired). Of course, you will need to create two global Dragon scripts and an application-specific script. Your forum profile shows you are not using KnowBrainer so will need to use the slower Dragon-specific application-specifics script (read the attached readme.txt file).

What is your screen set up (number of monitors and each one’s resolution)?

Are you building the Windows Visual Studio solution or did you just download and unzip the standalone application?

Thanks for trying it out!



-------------------------

-Edgar
DPI 15.3, 64-bit Windows 10 Pro, OpenOffice & Office 365, Norton Security, Shure X2U XLR to USB mic adapter with Audio Technica DB135 vocal mic & Shokz OpenComm UC version 1 wireless headset, Asus X299-Deluxe Prime, Intel Core i9-7940X (14 core, 4.3 GHz overclocked to 4.9 GHz), G.SKILL TridentZ Series 64GB (4 x 16GB) DDR4 3333 (PC4 26600) F4-3333C16Q-64GTZ, NVIDIA GIGABYTE GeForce GTX 1060 GV-N1060G1 GAMING-6GD REV 2.0 6GB graphics card with 3 1920x1080 monitors

 08/10/2020 04:50 PM
User is offline View Users Profile Print this message

Author Icon
Matt_Chambers
Top-Tier Member

Posts: 839
Joined: 08/09/2018

I am trying to execute the application by using an Advanced Scripting command with a single line consisting of:

ShellExecute "C:\Program Files (x86)\WindowGrid\Windowgrid.exe"

It's true that I don't use Knowbrainer. I spent so many years writing my own Advanced Scripting commands that I don't want to have to learn anybody else's commands. But I am happy to write my own commands

I'm running a single monitor, 1920 by 1080.

I just downloaded the standalone application, being lazy.

I'm happy to be a beta tester. Beta testing can be fun!
 08/10/2020 06:03 PM
User is offline View Users Profile Print this message

Author Icon
Edgar
Top-Tier Member

Posts: 1416
Joined: 04/03/2009

Thanks for the report Matt!

Good news and bad: I can re-create the problem, but…

I think it is a combination of two things - permissions and signature. Windows 10 is being very finicky!

Using a KnowBrainer script, if I put the application (with or without an appropriate folder) in "C:\Program Files (x86)" or "C:\Program Files", ShellExecute fails in the same manner. However, if I put it in the root of the C Drive (e.g. "C:\Window Grid\WindowGrid.exe"), on the desktop or on any other drive, everything works marvelously.

Unfortunately, this is not the case with a Dragon script. No matter where I put the application it always fails in the same manner. I used to have the credentials to "sign" an application but they may no longer be adequate - Windows 10 wants everything to come from the App Store. I do have an account on the App Store but I have never figured out how to submit an app. I did try using a Dragon script to "ShellExecute" another application downloaded from the Internet (PSPad - almost certainly signed) which is in "C:\Program Files (x86)" and that worked just fine.



-------------------------

-Edgar
DPI 15.3, 64-bit Windows 10 Pro, OpenOffice & Office 365, Norton Security, Shure X2U XLR to USB mic adapter with Audio Technica DB135 vocal mic & Shokz OpenComm UC version 1 wireless headset, Asus X299-Deluxe Prime, Intel Core i9-7940X (14 core, 4.3 GHz overclocked to 4.9 GHz), G.SKILL TridentZ Series 64GB (4 x 16GB) DDR4 3333 (PC4 26600) F4-3333C16Q-64GTZ, NVIDIA GIGABYTE GeForce GTX 1060 GV-N1060G1 GAMING-6GD REV 2.0 6GB graphics card with 3 1920x1080 monitors

 08/10/2020 06:15 PM
User is offline View Users Profile Print this message

Author Icon
Matt_Chambers
Top-Tier Member

Posts: 839
Joined: 08/09/2018

Interesting. I tried your earlier version of the application (screengrid.exe) and opened it with the same Advanced Scripting command, without problem. I don't know why there would be a difference.
 08/10/2020 06:47 PM
User is offline View Users Profile Print this message

Author Icon
Edgar
Top-Tier Member

Posts: 1416
Joined: 04/03/2009

Originally posted by: Matt_Chambers Interesting. I tried your earlier version of the application (screengrid.exe) and opened it with the same Advanced Scripting command, without problem. I don't know why there would be a difference.

That helps a lot! The only difference between the two is that Screen Grid is NOT a commandline application. By doing some ugly manipulation of the Clipboard I can turn Window Grid (and by extension, the as yet unreleased, Monitor <1-10> Grid) into non-commandline applications.

I have developed a workaround but it is ugly - very ugly! Create a new folder in the root of your C Drive - C:\WindowGrid (make sure there are no spaces in the name of the folder). Move the executable into this folder (again, make sure there are no spaces in the name of the executable). Use this Dragon advance script:

Sub Main

ShellExecute "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe C:\WindowGrid\WindowGrid.exe"

End Sub

note that there is only one space in this quoted string - between ".exe" and "C:\".

The ugly part is that the Power Shell window opens very briefly. I'm hoping that when DPI gets its update to the new scripting engine all of this will just work like it does with KnowBrainer!



-------------------------

-Edgar
DPI 15.3, 64-bit Windows 10 Pro, OpenOffice & Office 365, Norton Security, Shure X2U XLR to USB mic adapter with Audio Technica DB135 vocal mic & Shokz OpenComm UC version 1 wireless headset, Asus X299-Deluxe Prime, Intel Core i9-7940X (14 core, 4.3 GHz overclocked to 4.9 GHz), G.SKILL TridentZ Series 64GB (4 x 16GB) DDR4 3333 (PC4 26600) F4-3333C16Q-64GTZ, NVIDIA GIGABYTE GeForce GTX 1060 GV-N1060G1 GAMING-6GD REV 2.0 6GB graphics card with 3 1920x1080 monitors

 08/10/2020 07:42 PM
User is offline View Users Profile Print this message

Author Icon
Matt_Chambers
Top-Tier Member

Posts: 839
Joined: 08/09/2018

That works!

Wish DPI 15.6 would get here already! Crazy that Nuance is so close, and can't get the update over the finish line.
 08/11/2020 10:30 AM
User is offline View Users Profile Print this message

Author Icon
Edgar
Top-Tier Member

Posts: 1416
Joined: 04/03/2009

Originally posted by: Matt_Chambers That works!

Congratulations, as an official beta tester you are entitled to a free copy of the software! Oops - everybody gets it for free; oh well, so much for rewarding beta testers. Any thoughts on the preferences (press <CTRL>+p)? Even though I suspect that English is your primary language, have a look at the language localization dialog (from the Preferences dialog press <ALT>+l - that's the letter "L"; I hate fonts where you can't easily tell a capitol <I> from a minuscule <l> or the numeral 1).



-------------------------

-Edgar
DPI 15.3, 64-bit Windows 10 Pro, OpenOffice & Office 365, Norton Security, Shure X2U XLR to USB mic adapter with Audio Technica DB135 vocal mic & Shokz OpenComm UC version 1 wireless headset, Asus X299-Deluxe Prime, Intel Core i9-7940X (14 core, 4.3 GHz overclocked to 4.9 GHz), G.SKILL TridentZ Series 64GB (4 x 16GB) DDR4 3333 (PC4 26600) F4-3333C16Q-64GTZ, NVIDIA GIGABYTE GeForce GTX 1060 GV-N1060G1 GAMING-6GD REV 2.0 6GB graphics card with 3 1920x1080 monitors

 08/11/2020 11:29 AM
User is offline View Users Profile Print this message

Author Icon
Matt_Chambers
Top-Tier Member

Posts: 839
Joined: 08/09/2018

The preferences look good and easy to understand. I would change the default number of columns and rows to increase the number, but perhaps that's because I have a pretty big monitor.

English is my primary language, thank you!
 08/11/2020 01:45 PM
User is offline View Users Profile Print this message

Author Icon
Edgar
Top-Tier Member

Posts: 1416
Joined: 04/03/2009

Originally posted by: Matt_ChambersI would change the default number of columns and rows to increase the number

Given that the "Mouse" menu needs a sub-item for each column, and each of them need a unique (mnemonic) accelerator key, the letters [a-z] are the only reasonable choices - limiting me to 26 columns. Since there are slightly more than 90 "printable" ASCII key codes (<,>, <:> etc., but we need to throw out the capitol letters [A-Z] to avoid confusion) a torturous menu could be created using all of them as accelerator keys. I suspect it would be unwieldy to memorize a 68 character alphabet in order! But, since the characters are printed in large bold type it could be done.

Something similar holds with the rows; since I am using a letter/number combination I limit myself to 26 by 10. For the numerals we only have the possibility of 0-9 for unique accelerator keys thus only 10 rows.

Reducing this to absurdity, we could use a character/character combination and get something on the order of 94 by 94 resolution if we allowed the distinction between <a> and <A>!



-------------------------

-Edgar
DPI 15.3, 64-bit Windows 10 Pro, OpenOffice & Office 365, Norton Security, Shure X2U XLR to USB mic adapter with Audio Technica DB135 vocal mic & Shokz OpenComm UC version 1 wireless headset, Asus X299-Deluxe Prime, Intel Core i9-7940X (14 core, 4.3 GHz overclocked to 4.9 GHz), G.SKILL TridentZ Series 64GB (4 x 16GB) DDR4 3333 (PC4 26600) F4-3333C16Q-64GTZ, NVIDIA GIGABYTE GeForce GTX 1060 GV-N1060G1 GAMING-6GD REV 2.0 6GB graphics card with 3 1920x1080 monitors

 08/09/2021 12:55 AM
User is offline View Users Profile Print this message

Author Icon
kkkwj
Top-Tier Member

Posts: 1141
Joined: 11/05/2015

Hi Edgar, can I leave your grid up all day and work and click as normal, or do grid overlays somehow interfere with the normal operation of apps? I'm thinking I'd like a grid with lines spaced every 5% or 10% across the screen. Do you suppose your Grid tool would be easy to modify to do that? Thank you

-------------------------

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.

 08/09/2021 10:38 AM
User is offline View Users Profile Print this message

Author Icon
Edgar
Top-Tier Member

Posts: 1416
Joined: 04/03/2009

Originally posted by: kkkwj Hi Edgar, can I leave your grid up all day and work and click as normal

Not has currently implemented. The current behavior is to dismiss the grid (close the application) when the mouse is clicked. I suspect that it would be fairly easy to modify this in the manner you specify. There are actually three different code bases (window, monitor & screen grids) but, from what you say, you would probably want the Screen Grid version.

One would need to capture the location of the mouseclick, very briefly hide the grid, resend the mouseclick to the underlying object then re-show the grid. One might also want to consider eliminating the title bar (and possibly even hiding the menu) then re-examine the line layout math.

Even the Screen Grid version does not draw lines into the taskbar. If that were required one would need to figure out how to make it "full screen" (really full screen, not full monitor as most applications currently use the term).

One would probably also want to change the labeling so that only the top (and possibly bottom) row has a (non-vertically) centered label and only the left (and possibly right) column has a (non-horizontally) centered label.

An 8K monitor with lines every 5% would require ~400 vertical lines; 4K would be ~200, and a standard 1920x1080 would require 95 vertical and 53 horizontal lines. The current method of using a voice command to place the mouse pointer cursor in the middle of a named cell (0-9 vertical by a-z horizontal) would no longer work. I think one would need to parse an open-ended dictation command to obtain these two values (which would probably have to be integers).

Suspect that all this is doable <grin>. I doubt there would be a large market for this kind of interface. It would probably require quite a bit of CPU horsepower and still be quite intrusive on workflow. I think that there might already be applications which put "rulers" on top of the screen image but do not allow vocal mouse control; something like that might be a better starting point.



-------------------------

-Edgar
DPI 15.3, 64-bit Windows 10 Pro, OpenOffice & Office 365, Norton Security, Shure X2U XLR to USB mic adapter with Audio Technica DB135 vocal mic & Shokz OpenComm UC version 1 wireless headset, Asus X299-Deluxe Prime, Intel Core i9-7940X (14 core, 4.3 GHz overclocked to 4.9 GHz), G.SKILL TridentZ Series 64GB (4 x 16GB) DDR4 3333 (PC4 26600) F4-3333C16Q-64GTZ, NVIDIA GIGABYTE GeForce GTX 1060 GV-N1060G1 GAMING-6GD REV 2.0 6GB graphics card with 3 1920x1080 monitors

 08/09/2021 05:38 PM
User is offline View Users Profile Print this message

Author Icon
kkkwj
Top-Tier Member

Posts: 1141
Joined: 11/05/2015

Hi Edgar, thanks for the helpful reply. Using your thinking, I'm thinking of about 10-20 vertical lines (every 10% of the screen) and 10 horizontal lines, only on the usable workarea (not taskbar). I don't want numbers in the (giant) cells - just a couple of numbers anywhere on the lines to remind me if they are the 40% line or the 30% line. Parsing "mouse 90 x 40" as a command is no sweat. And I imagine that I have enough CPU juice to draw the lines.

The big thing I pick up from your message is that it is not allowed to pass a manual mouse-click through an overlay (is that the right term for my lines?) without hiding/disabling the overlay before passing the mouseclick through. Bummer. I was thinking that you could draw transparent overlay windows/lines and automatically pass mouse clicks through them as if they weren't even there.

Basically, I was wondering if there was an electronic way of replacing the threads (thing sewing machine thread) that I have taped to my monitor to create crossovers at locations on the screen. The threads don't get in the way much and do a great job of guiding my voice commands to place the mouse on buttons or in fields. It's really quite amazing how accurate I can be (thinking of Mark and his "within 50 pixels" comment) with the simple threads. I was just seeking a computerized version of them. If my info here gives you any ideas, please let me know. Thank you!

-------------------------

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.

 08/09/2021 05:58 PM
User is offline View Users Profile Print this message

Author Icon
Edgar
Top-Tier Member

Posts: 1416
Joined: 04/03/2009

Originally posted by: kkkwj The big thing I pick up from your message is that it is not allowed to pass a manual mouse-click through an overlay (is that the right term for my lines?) without hiding/disabling the overlay before passing the mouseclick through.

You can Hide() the semi-transparent Form which has the overlay lines, past the mouseclick through, then Show() the Form again so fast that it doesn't really flicker. I think the real drawback would be that you cannot have the grid Form on top and type directly into the underlying text field without flickering (although, if you're doing it all by voice the flicker can occur only when you pause to take a breath).

I'm starting to get into an area covered by NDA here! My Grid code is entirely public domain and entirely the product of my own work but me helping with your specific modifications might (almost certainly do) impinge on work that I have been doing recently for someone else. Feel free to mangle my grid code in any way you choose and also don't hesitate to ask me questions. If necessary, I will filter things through the NDA holder to ensure that I do not step on any toes.



-------------------------

-Edgar
DPI 15.3, 64-bit Windows 10 Pro, OpenOffice & Office 365, Norton Security, Shure X2U XLR to USB mic adapter with Audio Technica DB135 vocal mic & Shokz OpenComm UC version 1 wireless headset, Asus X299-Deluxe Prime, Intel Core i9-7940X (14 core, 4.3 GHz overclocked to 4.9 GHz), G.SKILL TridentZ Series 64GB (4 x 16GB) DDR4 3333 (PC4 26600) F4-3333C16Q-64GTZ, NVIDIA GIGABYTE GeForce GTX 1060 GV-N1060G1 GAMING-6GD REV 2.0 6GB graphics card with 3 1920x1080 monitors

 08/09/2021 09:10 PM
User is offline View Users Profile Print this message

Author Icon
kkkwj
Top-Tier Member

Posts: 1141
Joined: 11/05/2015

No problem. I was thinking of your comments and figured that if my transparent grid window was on top, it would probably foul up all calculations based on the foreground window. And now you've just confirmed that I would not be able to type through the transparent window either (unless it caught the keystrokes and passed them to the underlying window). I suppose the transparent window could do that without turning itself off and on - just catch the keys and pass them on. It's the foreground window calculations that would be an issue. Not so much for my code, because it would know what's going on. But for Dragon... not so much. :-) All of its app-specific command code would suddenly never get triggered because the foreground window would never be Word, Chrome, or whatever. Interesting. Oh well. I guess I stick with the thread method for now. It's actually pretty good. I thought of using red and black threads for alternating 10, 20, 30 lines, but it looks like all threads look black against the monitor screen. Oh well. Too bad I couldn't have thin glowing laser lines instead of threads!

-------------------------

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.

Statistics
32634 users are registered to the KnowBrainer Speech Recognition forum.
There are currently 0 users logged in.
The most users ever online was 12124 on 09/09/2020 at 04:59 AM.
There are currently 290 guests browsing this forum, which makes a total of 290 users using this forum.

FuseTalk Standard Edition v4.0 - © 1999-2023 FuseTalk™ Inc. All rights reserved.