Great, let me know. I tried checking it out from the repository and building it, and it built without problems, but it was on the same PC where I created it so maybe there's something in my Visual Studio settings that it requires.
Printable View
Me too. (Microsoft wrote it, not me.)
You bet!. Nearly all the features of HotkeyNet 1, ProgramW, and HotkeyNet 2 are going into Mojo. And other stuff too.Quote:
Are you planning on adding the ability of HKN2 that lets you use one keyboard and mouse across multiple computers? Right now I run HKN and HKN2 for my multi-boxing.
Thanks. :)Quote:
Great work so far!
Tested it on 2 PCs at home.
Windows 7 Home Edition - Clean install of build 2 no issues
Vista 64 Ultimate - Clean install of build 2 no issues
Both sessions picked each other up, pressing a key on one shows the key pressed in both sessions.
Didn't do any testing with WoW.
Thanks a lot.
[Edit: put potential problems in blue to pick them out a bit]
Updater worked OK.
It prompted me with that Windows Security Alery again: Do I want to allow Open Source Multiboxing Program to communicate over Public or Private networks?
-- Would be great if you could teach it to only ask this once, not on every update.
-- Also, to change "Open Source Multiboxing Program" to Mojo
Launched five WoWs and logged in - worked great, the problem I had with HKN did not need solving; I can hold down shift while typing and it correctly types all the letters shifted.
The same went for in-game broadcasting - all 5 windows correctly echoed everything I tried.
When holding down a modifier (eg shift), the 'Mojo's actions on this PC' pane flickers repeatedly. Does this indicate some unwanted behaviour? It only happens when a WoW window is focused.
**[Edit: sorry, the flickering happens with all keys when you hold them down, not just modifiers. It is filling up the 'Mojo's actions on this PC' pane with the same message over and over, that whatever key it is is being pressed down.
At least it isn't spamming key ups as well as downs, since that would be a problem with the WoW T's and C's (ie I would get banned, possibly on a permanent basis, and cry). No idea if spamming key downs only is a problem with them or not, but would very strongly want to be safe and not see it happen unless I tell it to.]
Even though Mojo reports that caps lock is pressed down and up in all windows, it toggles correctly (eg with 2 windows I worried it might be seen as pressed twice so on and off again at once, but in fact it toggled correctly when I tried it like that.)
Agh, and I just had to re-type that paragraph because the first draft came out all in caps lol :p
Similar (correct) behaviour for windows button, scroll lock, etc.
Pressing a button repeatedly very fast, or typing nonsense at super-speed, did not seem to cause any errors or unexpected behaviour.
Holding down one button while pressing another also worked how I would expect it to.
Holding a button down auto-repeats on every window as expexted with the key down and key up events being sent. I think I remember you said you will end up having a choice of sending mode in case this is not wanted for some keys. [Edit but see my blue bit earlier about holding the keys down.]
I even managed to kill a bunny rabbit very thoroughly in-game, which proves it is working well so far!
Broadcasting stops correctly when switching to the Firefox window and Mojo window and just plain desktop, couldn't think of other ways to test that bit.
Mouse clicks were no longer displayed in the 'Your Last Action' pane, nor broadcast (made it much easier to test, assume this was on purpose).
Keypresses outside of WoW windows were still displayed in the 'Your Last Action' pane, and correct.
I thought the "Mojo's actions on this PC" pane displayed actions in a slightly non-intuitive way. Here is an example:
Only 4 window handles are displayed, but key down would have been sent to 5 windows. I assume there will be window renaming and the names here eventually? Also, I'm not sure what the difference between a command and a message is. Lastly, if I had more than one computer, I think I would prefer to see my computer's name instead of 'this computer' (guessing).Code:Command executed
From this computer.
Broadcast W Down to target windows on this PC.
Window handle 0x200602.
Window handle 0x160024.
Window handle 0x1B060C.
Window handle 0x170596.
Message sent
Broadcast W Down to World of Warcraft.
I'm sure a bit of tweaking here could make it much easier for a non-savvy user to understand, but I might be jumping the gun mentioning it at this stage?
Can't think of anything else to try for now, hope it helps.
This helps so much, I don't know how to tell you. I'm afraid I sound like an idiot when I gush like this, but this kind of feedback is amazingly helpful. Microsoft and Google only wish they could buy this quality of feedback! :)
If you keep telling me stuff like this, and I keep implementing it, this is going to be a great program.
I'm going to answer in mixed-up order.
Then please, help me tweak it! :)Quote:
I thought the "Mojo's actions on this PC" pane displayed actions in a slightly non-intuitive way. Here is an example...I'm sure a bit of tweaking here could make it much easier for a non-savvy user to understand, but I might be jumping the gun mentioning it at this stage?
Actually I think this is one of the most important things that people can give me feedback about. Supporting HotkeyNet has been a huge headache because people constantly assume incorrect things about how it works based on the info that the program shows them. This is totally my fault. It happens because the program displays info in a misleading or unclear way. I'd like to design this better in Mojo, so people can understand what the program is doing and how it works.
Here's what I was trying to help people understand.
Everything Mojo does consists of three main parts. That's the fundamental thing about the program.
1. The input. That's when the the user presses a key with a finger, moves the mouse physically, etc.
2. Message. The local copy of Mojo reacts to the input by sending info to all copies of itself that tells each copy what to do. I called this a "message" in the current display but (like everything) it can be changed.
3. Action. Each copy of Mojo does stuff that affects other programs on its own computer. The action is the reason people use Mojo (or any other boxing program). They want it to do stuff to other programs. In the current display I called the actions "commands."
In this case (key broadcasting) here's how these three things happen.
1. Input: You press or release a key. The local Mojo shows this in "Your last action."
2. Message: The local copy of Mojo sends messages to all the Mojos (including itself) telling them that the user wants them to inject the key event into all WoWs that are running on their computer.
3. Action: Every copy of Mojo injects a simulation of the physical input into every WoW that is running on its computer. There is only one exception. The local Mojo doesn't inject into the foreground WoW because that copy of WoW received the physical event.
If you disagree about the importance of making people understand these things, or you have a better idea of how to show them, or any other reaction, please, let me know. This is a good time.
No, actually Mojo only sent the signal to four windows. Mojo did nothing to the foreground WoW on the local machine. That WoW received the physical event from the OS when you moved the key with your finger.Quote:
Only 4 window handles are displayed, but key down would have been sent to 5 windows.
Well, maybe, but let me tell you why I did that. I think it's extremely important for people to understand the concept of the local computer. That's whichever computer happens to be connected to the keyboard they are pressing at that instant.Quote:
Lastly, if I had more than one computer, I think I would prefer to see my computer's name instead of 'this computer' (guessing).
One of the major misunderstandings with HotkeyNet is that practically every user jumps to the mistaken conclusion that there is something special about the server copy of HotkeyNet. I don't want people making that mistake with Mojo. The local computer can be any computer. It's whichever computer they happen to touch at that instant.
I think maybe the program can help people understand this if it always refers to the local computer as "this computer" instead of by name. I'm trying to make them realize that there's nothing special about the local computer. Every computer is local whenever you touch its keyboards or mouse. There's nothing special about any of them. (This is also why I removed any mention of "server" or "client" from Mojo's screens.)
Your security software (probably your firewall) is probably asking that because the updated Mojo is a different program that you haven't approved yet. I don't think I can do anything about that -- if I could, it would be a pretty big security hole in your firewall -- but I just changed a security setting in ClickOnce to see what effect it may have.Quote:
It prompted me with that Windows Security Alery again: Do I want to allow Open Source Multiboxing Program to communicate over Public or Private networks? ... Would be great if you could teach it to only ask this once, not on every update.
Okay, thanks, I just did that in build 3. (At least I think it's done ... I'm not sure where the installer is picking up those words from.)Quote:
Also, to change "Open Source Multiboxing Program" to Mojo
That works on the local but (as people will soon discover) not on remotes. But I'll get it working on remotes soon.Quote:
Launched five WoWs and logged in - worked great, the problem I had with HKN did not need solving; I can hold down shift while typing and it correctly types all the letters shifted.
Good. :)Quote:
The same went for in-game broadcasting - all 5 windows correctly echoed everything I tried.
Thanks, I'll try to fix that.Quote:
When holding down a modifier (eg shift), the 'Mojo's actions on this PC' screen flickers repeatedly, indicating some unwanted behaviour I suspect. It only happens when a WoW window is focused.
Good. :)Quote:
Even though Mojo reports that caps lock is pressed down and up in all windows, it toggles correctly (eg with 2 windows I worried it might be seen as pressed twice so on and off again at once, but in fact it toggled correctly when I tried it like that.)
Good. :)Quote:
Similar (correct) behaviour for windows button, scroll lock, etc.
When you consider how much time Mojo is wasting with that huge number of scrolling text messages, this is great news. (The main reason for the messages is so we know what's going on during development, but they also act like a stress test, slowing down Mojo.)Quote:
Pressing a button repeatedly very fast, or typing nonsense at super-speed, did not seem to cause any errors or unexpected behaviour.
Yeah.Quote:
Holding a button down auto-repeats on every window as expexted with the key down and key up events being sent. I think I remember you said you will end up having a choice of sending mode in case this is not wanted for some keys.
Woot, you are a master! :)Quote:
I even managed to kill a bunny rabbit very thoroughly in-game, which proves it is working well so far!
Good. It may get confused about some windows because I'm using the name of WoW's window class to identify WoW. It may turn out that other programs use the same name.Quote:
Broadcasting stops correctly when switching to the Firefox window and Mojo window and just plain desktop, couldn't think of other ways to test that bit.
I've written code that identifies WoW in a more reliable way (by checking the name of the executable file that launched the program) but I disabled that code in the test builds because it requires Mojo to obtain a handle to WoW's process. This action is completely harmless but I'm afraid it may put Warden on the alert. I'm going to keep testing it with my own WoW account and see if Blizzard minds.
That's a bug. Are they absent from the first moment you start Mojo or do they stop getting displayed later on?Quote:
Mouse clicks were no longer displayed in the 'Your Last Action' pane...
Right, I haven't done that yet. I'll probably get keybroadcasting working 100% before I start on mouse stuff.Quote:
Mouse clicks were no longer ... broadcast..
Hmm, tried again, and the mouse info is showing again. I'll watch out for it and try to spot if/when it happens again.
Sorry, I added a bit to my original post, It looked like you started replying before I edited. could you re-read this paragraph to make sure I communicated it OK? Sorry.
About the way messages are displayed: I'll sleep on it and try to understand what might be important to you and a random user and make any suggestions I can.
Is WoW in the foreground while you hold the key down?
(Edit: Oops, sorry, you said it was.)
If so, Mojo is broadcasting the key's autorepeats.
Those autorepeats are generated by the keyboard. (The real name believe it or not is "typematic" not "autorepeat." IBM made up the name "typematic" back around 1960.)
Each time Mojo broadcasts, it adds some messages to that window and the window scrolls. After the window scrolls, it readjusts itself to put the newest text one or two lines up from the bottom. This makes the text appear to bounce every time a message gets added to it. Is this what you're describing?
If the bounce is disconcerting I can try to remove it. I kinda like it because it shows that stuff is getting added to the window. Without the bounce, the window may appear to be frozen when identical messages get added.
Edit: Mojo is only making every copy of WoW receive the signals that they'd receive if they had the focus. The keyboard sends repeated down signals. Mojo makes all the WoWs think they are receiving them.
I didn't know Blizzard is concerned about repeated up signals. Could you tell me more about that? (Like you said, Mojo doesn't do it.)
Thanks, there's no rush. I'm willing to spend a lot of time on that.Quote:
About the way messages are displayed: I'll sleep on it and try to understand what might be important to you and a random user and make any suggestions I can.
I was worried about these auto repeats because the mantra with blizzard is one keypress for one action. They strictly do not allow automation, and one type of automation would be to hold down a button on your keyboard and see spell after spell be cast by your in-game character.
If an in-game spell or macro could be configured to be cast just by registering a key down event (which I think it can, but am very hazy about), then any software which sends repeated key downs would cause this illegal behaviour (or at least this is my concern).
[Edit: Threads like this one indicate that it could indeed possible.. http://forums.worldofwarcraft.com/th...00873657&sid=1 ]
My comments about key ups was because sending key down / key uip / key down / key up / ... repeatedly just by holding down a button would be a clear breach. It would be mashing the button for me = automation.
As it is, I am not comfortable myself even with it sending key down / key down / key down /... repeatedly just by holding down a button. My understanding is that, to be 'legal' I have to press the button down for it to send one key down (one per window that is), and physically lift it up to send key up.
A lot of this is based of what I think I remember reading on these forums, so I would welcome confirmation or corrections from someone else.
Perhaps you could interpret this to help me understand it better; is Mojo trying to tell the window I am repeatedly pressing the key (albeit impossible, without releasing it), or is it all quite normal, and I just didn't know that it did it anyway (even with a single window and no Mojo)? Your last line seems to say its not a problem I think? So my keyboard sends these repeated key downs anyway, not just the first key down then wait?
Sorry to be so picky!
I think it is that if the key was repeated like if it was multiple keystrokes, it would count/function as getting more than one action per keystroke. Like an autofire function on some game console controllers, where you can hold down a button and it will treat it as multiple rapid presses of the button.