I generally play on a razer keypad. I use a razer tartarus pro, but its the same concept as the orbweaver, nostromo, etc. One benefit of the keypad is that I already use a 3rd party tool to map the keypad keys to something on my keyboard. Razer's program that does this is called synapse. You can do the same thing with any programable keyboard or some other 3rd party tools that let you remap your own keys. (
How to remap keys using Windows 10 PowerToys Keyboard Manager - TechRepublic)
I haven't tried this with PowerToys, but in Synapse you can combine multiple command on each key. So I tried the command to swap windows on the same key as the keypress going to the game client - e.g. when I pressed "1", it would actually do "alt+F1, 1". WoW Open Box takes the alt+F1 part and changes the focus to window 1, then the game receives only the "1". So I'm executing 2 command with each keypress, but only 1 in-game command per keypress. (The 'legality' of this approach could be debated. Blizz says only 1 command per keypress, and I'm doing 2 command, but the 1st of that happens outside the game - so I think I'm OK, but *shrugs* who knows.)
I originally made my commands on multiple keys, 1 for each char. Such that I had 1 that did "focus window #1", send game keystroke "1". 2 did "focus window #2", send game keystroke "1". 3 did "focus window #3", send game keystroke "1", etc. Then I could just spam 1-4 from anywhere and that chard would execute whatever I had on my 1 key. That worked pretty well, I could even just rapidly roll my fingers across 1-4 and each command executes correctly. It somewhat worked to even just mash all 4 buttons at the same time. I think it quick enough that it captures most of the commands a split second apart, but it seems like I do loose some keystrokes some of the time. I was happy, but this didn't really let me get more than about 3 or 4 sets of keys that I could work this way - you just run out of keys quickly if you're setting each key for each window. (it works, but round robin may actually perform better)
For a "round robin" type approach with WoW open box, I've been playing with different approaches. At a basic level, round robin is just alternating commands between the command for "next window" and whatever keystroke you want to send to the game. There are a few different ways to combine these though.
1: Simplest way is just to set an easy to hit key to be your "next window" command - say "1", then you can use 2,3,4, etc for whatever you want to to go to the game. Then your "rotation" just becomes 12121212, 131313, 14141414, etc. You can do this all within WoW Open Box - no additional software needed.
2: With a program like Synapse (or anything that lets you remap keystrokes) you can combine the command to swap windows on the same key as the keypress going to the game client. I did the window swap command, before I did the command going to the game which is a little odd in that the next clients acts on keypress, not your current one. But I'm generally driving from my tank - and mouse clicking his buttons, but then when I start clicking I want my mages and priest to act, so this works for me. Then when I want to regain focus on just my tank - I just move the mouse to regain, focus-follows mouse.
3: I experimented with sending 1 command on the key down, and the other command on the key up. Putting them both on the same key down command did work when I pressed the keys individually. But when I was mashing multiple keys at a time, some keystrokes would be lost. Switching command between key down and key up (similar to how JMB does its round robin approach) is pretty good, but then you can't just roll your fingers across multiple keys - you need to complete the key up on 1 key before beginning the key down on the next key. I find I loose a few commands doing it this way, as apparently I'm slow to release my keys.
I think its largely a matter of personal preference, and it even works well to combine some approaches. I'm generally doing a round robin approach, but I just set my "`" key to be a "switch focus to my healer's window, /cast flash heal on current target (which is generally my tank). I'll probably do something similar for a taunt button once I log back in. I do find that every time I play I keep adjusting something, either on WoWOpenBox or Synapse, or in-game macro.
Connect With Us