Log in

View Full Version : Mojo build 2 is ready to test ** Testing Closed **



Freddie
11-29-2009, 12:33 PM
Mojo build 2 is up.

This build can multibox a little bit.

Instructions:

Start Mojo on every PC. It will update itself automatically. If you need to download it for the first time go here:

http://www.mojoware.org/p/download.html

Have some WoWs going. (You can start them before or after Mojo, it makes no difference.) Press keys normally in any WoW window. All your other WoWs should receive the keystrokes too.

There's no configuration. It's all automatic.

If you are working with some other kind of window (not WoW) Mojo will stop broadcasting automatically from that PC.

All PCs should work the same way. It doesn't matter which keyboard you use.

I'm sure you'll notice plenty of things wrong so I won't bother mentioning specific items to test.

Thanks in advance for your feedback. It's extremely helpful to me.

Funnyshane
11-29-2009, 07:34 PM
In your post you mention that Mojo works across multiple computers to send the key strokes, does it also work on a single computer with multiple instances of the program?

Freddie
11-29-2009, 07:50 PM
Yes. It works fine with multiple WoWs on one computer. It should work with any number of computers with any number of WoWs on each one.

thinus
11-29-2009, 08:22 PM
Doesn't do anything if it can't find any WoWs?

Freddie
11-29-2009, 08:25 PM
If there are no WoWs anywhere? Then it does nothing.

WoW has to be in the foreground on the local machine (the one you're typing on) for the program to broadcast.

ioho
11-29-2009, 08:40 PM
Downloaded for the first time, installed perfectly.

Started up two copies of WoW after starting Mojo. Mojo picked up the copies before I realised which caused me some issues logging in until I figured it out.

Once in game keys were broadcasted perfectly, no issues with any delays.

Also, as you said, as soon as I jumped onto another program (to type this) it stopped broadcasting to the WoW clients.

Have not had any issues so far, other than the fact it's hard to control two characters at the same time using just the same key presses (by that I mean movement), but that's for the future, so no worries there..

Looks like with all the bells and whistles this will be a great program. Keep up the good work.

I'll keep playing around, add some more WoW clients in to mix it up.

Cheers, Ioho.

edit: This was for one computer only. Also, adding a third client in worked fine, just made things a bit more complicated (playing, not the program)

Freddie
11-29-2009, 09:02 PM
Thanks Ioho! You're the first person who ever used this program for multiboxing and sent feedback about it, and the report is so encouraging, I take it as a good omen!

When a program is in this early baby stage, I feel like I'm in an airplane lifting off from the runway. The first public builds are a little scary just like a takeoff. But based on your comments, this will be a very good trip!

Over the next year or two I'll be adding tons of features to this program. But right now, this week, I'd like to add things that will make the program useful as quickly as possible. (Because I want to get a lot of testers.)

What features do you think I could add immediately to make it useful not just for testing, but for really playing?

ioho
11-29-2009, 09:12 PM
I think the one thing that would help ( not sure if it's possible ) would be have certain keys only press on the active window, the movements keys. I found everything else was fine except movement. Trying to make 2+ characters move exactly the same so they don't run out in all directions. Yes, I know, I could just unbind the keybinds, but it would be nice to be able to use the same keybinds for movement no matter what client was active at the time.

Maybe also a shut up feature (pause all broadcasting). Mostly because logging in/chatting is is a bit complicated when it's broadcasting everything.

Good job so far though mate, keep it up.
Ioho.

thinus
11-29-2009, 09:17 PM
If there are no WoWs anywhere? Then it does nothing.

WoW has to be in the foreground on the local machine (the one you're typing on) for the program to broadcast.

I don't think it runs at all. Mojo 1 showed the dialog and seemed to work ok. I ran Mojo 1 again and updated it. Now when I run Mojo it comes up with the Verifying Application Requirements dialog and then it disappears. Is there supposed to be a visible dialog? Taskbar icon? Tray icon?

I am not running any WoWs when running Mojo, don't have WoW installed on this machine.

Freddie
11-29-2009, 09:30 PM
I think the one thing that would help ( not sure if it's possible ) would be have certain keys only press on the active window, the movements keys. I found everything else was fine except movement. Trying to make 2+ characters move exactly the same so they don't run out in all directions. Yes, I know, I could just unbind the keybinds, but it would be nice to be able to use the same keybinds for movement no matter what client was active at the time.

Maybe also a shut up feature (pause all broadcasting). Mostly because logging in/chatting is is a bit complicated when it's broadcasting everything.

Good job so far though mate, keep it up.
Ioho.
The pause button is easy, I'll add that tomorrow. Lists of do-pass and don't-pass keys are more complicated because I want to design a really nice easy screen for that and it might take a while. I'll start working on it tomorrow.

Freddie
11-29-2009, 09:36 PM
I don't think it runs at all. Mojo 1 showed the dialog and seemed to work ok. I ran Mojo 1 again and updated it. Now when I run Mojo it comes up with the Verifying Application Requirements dialog and then it disappears. Is there supposed to be a visible dialog? Taskbar icon? Tray icon?.
It sounds like Mojo isn't even running. I think that's the installer you're seeing, and it's written by Microsoft.

Generally you see four or five "do you really want to do this" windows. The last one is the UAC window, and then Mojo finally runs and shows either its license dialog or main window.

This is Microsoft's ClickOnce installer. I love the idea of ClickOnce but the implementation has a lot of problems. I used it in HotkeyNet 2's beta and a number of people reported problems like this. I'm trying it again now because it's a new version of ClickOnce (the version that comes with Visual Studio 2010) and I hoped it would work better.

I think ClickOnce saves an error log somewhere. I'll try to find out.

I'm not sure what to do about this. I'll think about it overnight.

Thanks a lot for letting me know.

ioho
11-29-2009, 09:36 PM
Fairy-nuff. Sounds good. I like the direction that this is all heading.

ioho

thinus
11-29-2009, 09:57 PM
Wow, ClickOnce stores the application in the weirdest place. I found the mojo log files and I get this log output every time I try and run it:



-------------------------------------------------------------------------------------
mojo_engine Log File
-------------------------------------------------------------------------------------

mojo_engine 0.0.1 build 2
File opened at 14:03:51 on Monday, November 30, 2009
DNS name: stnz-wk792.Softtech.local
OS version: Microsoft Windows XP Professional Service Pack 3 (build 2600)

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

cScribPack.cpp 108: Unable to find DlgMonitor.InputEventsHead in multimap.
cScribPack.cpp 108: Unable to find DlgMonitor.MemosHead in multimap.
cScribPack.cpp 108: Unable to find DlgMonitor.ConnectionsHead in multimap.

Freddie
11-29-2009, 10:06 PM
Hmm, so Mojo *is* running. Those three lines are normal even though they look like errors. There should be one more line after them that's not there. If you don't mind helping a little more, I'll put some more logging in the file tomorrow and we can try to see where it's breaking.

By the way there are two log files in that directory. This one is from the engine. The other one is generated by the exe. Maybe there's an error message in it.

Yeah the ClickOnce directories are hard to find. :) HotkeyNet 2 has a menu option to show you where it's installed. I'll add that to Mojo.

thinus
11-29-2009, 10:09 PM
The mojo log file didn't look suspect, only one entry:


main.cpp 91: This is a release build.

Freddie
11-29-2009, 10:29 PM
Thanks. I think I know what's happening. There's a place in the code where the initialization stuff can throw an exception, and if so, the program is supposed to display some messages and log some stuff and exit. I commented out the message and log temporarily and forgot to put them back. I'll put them back tomorrow. Thanks again.

thinus
11-29-2009, 11:24 PM
No problem. I will take a look at the code this week sometime and see if I can get it to build locally.

sýnc
11-29-2009, 11:33 PM
This software seems like it will/could have a lot of possibilities.
Will you have mouse broadcasting that can do aoe spells like death and decay?

That would be an amazing option for this software.

Thanks so much for all the hard work.

rocnroll
11-30-2009, 03:44 AM
Smooth sailing for me so far. I loved the updater. 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.

Great work so far!

Freddie
11-30-2009, 08:51 AM
.
Will you have mouse broadcasting that can do aoe spells like death and decay?
Yep! This software will do everything that people expect from multiboxing software.


Thanks so much for all the hard work.
Thanks for the kind words. :)

Freddie
11-30-2009, 08:52 AM
No problem. I will take a look at the code this week sometime and see if I can get it to build locally.
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.

Freddie
11-30-2009, 09:04 AM
Smooth sailing for me so far. I loved the updater.
Me too. (Microsoft wrote it, not me.)


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.
You bet!. Nearly all the features of HotkeyNet 1, ProgramW, and HotkeyNet 2 are going into Mojo. And other stuff too.


Great work so far!
Thanks. :)

thinus
11-30-2009, 10:51 AM
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.

Freddie
11-30-2009, 11:57 AM
Thanks a lot.

Flekkie
11-30-2009, 01:53 PM
[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:

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.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).
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.

Freddie
11-30-2009, 03:46 PM
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.


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?

Then please, help me tweak it! :)

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.


Only 4 window handles are displayed, but key down would have been sent to 5 windows.
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.


Lastly, if I had more than one computer, I think I would prefer to see my computer's name instead of 'this computer' (guessing).
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.

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.)


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.
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.


Also, to change "Open Source Multiboxing Program" to Mojo
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.)


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.
That works on the local but (as people will soon discover) not on remotes. But I'll get it working on remotes soon.


The same went for in-game broadcasting - all 5 windows correctly echoed everything I tried.
Good. :)


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.
Thanks, I'll try to fix that.


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. :)


Similar (correct) behaviour for windows button, scroll lock, etc.
Good. :)


Pressing a button repeatedly very fast, or typing nonsense at super-speed, did not seem to cause any errors or unexpected behaviour.
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.)


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.
Yeah.


I even managed to kill a bunny rabbit very thoroughly in-game, which proves it is working well so far!
Woot, you are a master! :)


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.
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.

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.


Mouse clicks were no longer displayed in the 'Your Last Action' pane...
That's a bug. Are they absent from the first moment you start Mojo or do they stop getting displayed later on?


Mouse clicks were no longer ... broadcast..
Right, I haven't done that yet. I'll probably get keybroadcasting working 100% before I start on mouse stuff.

Flekkie
11-30-2009, 04:04 PM
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.

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.]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.

Freddie
11-30-2009, 04:27 PM
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.)


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.
Thanks, there's no rush. I'm willing to spend a lot of time on that.

Flekkie
11-30-2009, 06:25 PM
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/thread.html?topicId=18600873657&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!

Maxion
11-30-2009, 06:37 PM
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.)

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.

Freddie
11-30-2009, 07:04 PM
...then any software which sends repeated key downs would cause this illegal behaviour (or at least this is my concern).
Keyboards generate repeated downs. You're worried about software doing something that every keyboard does constantly.

If you open Notepad and hold down the X key, you'll get a stream of X's because the keyboard automatically repeats X down, X down, X down, X down for a long as you hold the key.

When you see Mojo sending repeated key downs, the source is the keyboard. Mojo is seeing your keyboard generate repeats, so Mojo broadcasts the repeats to the non-focused windows.

The result is simply that the non-focused WoW's see the same thing that they would have seen if they had the focus and you were using only the keyboard.


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, I only saw this after I posted the above. Maybe my post crossed with your edit, I don't know.

Yes, your last sentence is correct. Your keyboard sends these repeated downs all the time.

Like I said above, if you open a word processor and hold a key down, you'll see the automatic repeats happen. (I know you've seen this a zillion times, but maybe you didn't connect it with what happens when you play WoW.)

Freddie
11-30-2009, 07:10 PM
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.

If you could hold down a single key and repeatedly trigger an action from the left side of WoW's key binding screen, that would break the rules.

But you can't do that this way. (Or if you can, you can also do it with an ordinary keyboard.)

Flekkie
11-30-2009, 07:21 PM
My name is Flekkie, and I am an editaholic. It started with just one edit in the evenings, but now it's getting out of control. :D

Ahem.. thanks for the confirmation.

Freddie
11-30-2009, 07:23 PM
My name is Flekkie, and I am an editaholic. It started with just one edit in the evenings, but now it's getting out of control. :D
I'm the same way. :)

Fizzler
11-30-2009, 10:34 PM
Flekkie hit all the things I noticed and than a few.

Under last action key name it shows what was last depressed and not a series of keys. For example Cntrl-Alt-2 returns just 2. Not sure if that matters but I had to come up with something!

Are you planning on supporting G-keys? I unbound a key on my G13 it was not recognized.

I tried my best to trip up the typing but it was able to keep up with me.

Freddie
11-30-2009, 11:19 PM
Under last action key name it shows what was last depressed and not a series of keys. For example Cntrl-Alt-2 returns just 2. Not sure if that matters but I had to come up with something!
I don't know either but I'm planning to add an option to make "Your last action" scroll, so that instead of each new action replacing the previous one, you can scroll up and see a history of what happened. I put that in HotkeyNet 2 and it came in handy a few times.


Are you planning on supporting G-keys? I unbound a key on my G13 it was not recognized.
Mojo responds to all key codes that the G13 sends to the operating system. (That's true for all hardware.)

But Mojo ignores all signals that the G13 sends to its own driver or its own user mode software. (That's also true for all hardware.)

I don't own any Logitech devices but if you unbind keys and then see nothing in Mojo's "Your last action" window, that means the G13 isn't sending anything to the operating system. It wouldn't surprise me if you have to assign an output key code to a G13 button in order to make the button send something to the operating system.


I tried my best to trip up the typing but it was able to keep up with me.
That's good news. It's amazing how fast computers are today. :)

Freddie
11-30-2009, 11:34 PM
I got nervous after the conversation with Flekkie and Maxion about repeated key-down's because there is a slight difference in Mojo build 2 between the signals that Mojo sends to indicate an automatically generated key press and the signals sent by the operating system.

I'll get a little technical here for a minute in case anybody is interested. When the operating system sends a WM_KEY* message it sets or resets the 30th bit to indicate whether the key was previously pressed or released. Microsoft calls this the "previous key state" bit. When the receiving program (in this case WoW) receives a WM_KEYDOWN message it can inspect that bit to see whether the key press was generated typematically (i.e. automatically by the keyboard) or manually by the user's finger. This works because a typematic key press is always preceeded by a key down, but a manual key press is always preceded by a key up.

I didn't bother to set that bit in Mojo build 2. As a result of this thread, I just added stuff to the program to set that bit exactly like the operating system does. This will be in Mojo 3 tomorrow.

The only visible sign of the change will be a slight addition to "Your last action." The last line shows the status of the bit.

Thanks Flekkie for bringing this to my attention. :)

http://mojoware.org/art/mojo-build-3-1.gif

Fizzler
11-30-2009, 11:40 PM
I don't own any Logitech devices but if you unbind keys and then see nothing in Mojo's "Your last action" window, that means the G13 isn't sending anything to the operating system. It wouldn't surprise me if you have to assign an output key code to a G13 button in order to make the button send something to the operating system.


I know in ISBoxer this works. If you unbind or do not assign any key to a G-key it is still passed. There is a thread about it. Perhaps I am doing it wrong I have all my keys assigned so I do not worry about it.

Freddie
11-30-2009, 11:49 PM
I know in ISBoxer this works.

It could work in Mojo too if I wanted to spend time adding code to read Logitech's proprietary signals, but I've got too many other things to do that are more important.

I was telling you a design decision, not a statement of what's technically possible.

I said Mojo will *ignore* Logitech's proprietary data. I didn't say it's impossible to read the data.

If people want Mojo to work with Logitech's hardware, or any other hardware, all they have to do is set the hardware to send standard key codes to the operating system.

For me to spend a lot of time so people don't have to bother setting their Logitech with Logitech's software, when the end result will be exactly the same either way, doesn't make a lot of sense to me.

Fizzler
12-01-2009, 01:05 AM
I do not use the G -keys myself I set up key codes just for the reason you mentioned proprietary nature.

Looking good so far.

Freddie
12-01-2009, 06:03 PM
I was thinking about this overnight and realized, it would probably only take a few hours. Maybe I should change my mind.

Something else occurred to me. The operating system recognizes a whole bunch of keys that don't exist on most people's keyboards. For example, there's a key called OemAX that only exists on Japanese keyboards. People can make many tens of millions of key combinations from these keys that can't conflict in any way with keys that they press on their keyboards.

They can assign these key combinations to Logitech's buttons. Then their Logitech sends the combinations to Mojo or whatever hotkey program they're using. Mojo does whatever they want it to do.

It's a way of "creating" more key combinations if people are afraid they will "lose" key combinations by assigning them to the G keys.