emist / Eryan

Eryan EVE Bot platform
19 stars 8 forks source link

Keyboard states interfere with machine input #3

Open dambrisco opened 13 years ago

dambrisco commented 13 years ago

We should think about posting the keydown/keyup messages instead of states because states interfere with other input on the machine. Took me 3 minutes to type this out with Eryan running. (Running a small modification to the EMiner script.)

emist commented 13 years ago

I feared this might happen. The problem is it seems that there is no way to do without activating the keyboard states. Or at least no way that I could think of.

I initially attempted to post the states to eve but it wasn't working. After further research online I ran into a page where a guy explained that states aren't actually posted but that the windows somehow know what state the keyboard is in when they receive the different keyboard messages. When I spy++ on the Eve client it seems to corroborate what that guy was saying as no messages were sent when I pressed ctrl, shift, etc.

I don't foresee we will find a solution to this problem but we shouldn't discount the possibility that a good solution exists. Maybe the answer can be found thinking outside the box. Is there any way for a system to have two keyboards? Specifically can a system have a virtual keyboard as well as a real one? If that is a possibility then maybe we can hook the eve client to a virtual keyboard and that way fucking with its states won't affect the real one. Another possibility is of course not using state keys so much, what does your script do that causes it to use them so much?

dambrisco commented 13 years ago

It seems to be trying to open the cargo way too often, which is an extremely easy fix, but it's something we should probably look into anyway. I'm completely unsure of the virtual keyboard thing. Since it sets a system-wide keystate, I'm not sure it would matter - we might be looking at setting up something similar to a second entire I/O instance which probably isn't worth it.

http://msdn.microsoft.com/en-us/library/ms646267%28v=vs.85%29.aspx That page also mentions something about a KF_ALTDOWN flag, which might be useful since the only blocking issues I've had so far were with the alt key. I'm guessing this might be more the route to go, potentially.

emist commented 13 years ago

What do you mean by trying to open the cargo way too often? The framework should never be trying to open the cargohold in the first place, is it doing that?

dambrisco commented 13 years ago

I mean that I was calling openCargo about once a second because my IF was set up poorly.