KeenSoftwareHouse / SpaceEngineers

2.94k stars 895 forks source link

Captures input intended for overlay #385

Open jftanner opened 9 years ago

jftanner commented 9 years ago

Any keyboard input intended for an overlay (such as Overwolf) is captured by Space Engineers. For example, text entered into an overlayed chat panel is also treated as hot keys. (So typing 'k' into an overlayed window opens the console as well.)

This does not affect the Steam overlay or alt-tabbing.

Some form of detection would need to be added to input handling in order to prevent this. So far, I've tracked the input handling to MyScreenManager, but I'm not sure how to test against the presence of an overlay.

Any suggestions would be greatly appreciated.

jftanner commented 9 years ago

An example:

The window in the upper right is a Twitch chat overlay in overwolf. Typing 'k' also opened the console. (Please note, the 'k' also appeared in text chat but is not visible in the screenshot due to the behavior of that app.) 2015-08-01_00001

mexmer commented 9 years ago

many overlays doesn't work properly, unless you run them under administrator privileges.

and no, game should not require explicit support for overlays. overlays in most cases hooking your input (for capturing keyboard) and output (for displaying what they need).

steam works with SE without admin, because game loads and uses steamsdk, which on load hooks on all proper places. but in SE steam is used also for workshop communication (publishing/downloading), that's also why it needs steam dll.

also since you mentioned overwolf. overwolf is working properly, but you need to run teamspeak as administrator.

i use teamspeak since version 1, and many games that include anticheat controls and antihack system, and also many games from steam, require TS to be run as administrator, otherwise PTT and other hotkeys are not working.

jftanner commented 9 years ago

I'd agree with you, except that Overwolf works properly with thousands of other games without needing admin rights. And, like you said, Overwolf is working properly. It's SE that's capturing input when it doesn't have proper focus.

mexmer commented 9 years ago

maybe reread what i wrote?

i stated overwolf works, if you run teamspeak as administrator.

also i specifically mentioned, that teamspeak requires for proper function administrative rights most of the time.

jftanner commented 9 years ago

I'm not using teamspeak at all. In fact, it's not even installed. That's not what I'm using Overwolf for.

mexmer commented 9 years ago

ok, i know overwolf only as function of teamspeak, that's why i mentioned teamspeak.

anyway, like i said, for many overlays to function properly over steam games, or games with protection, you need to run them under admin privileges.

unless they install service like steam. that can hook input and output.

if game takes over input, when overlay is active, that means, overlay didn't properly hook input/ouput. most time it's due privileges on process.