[Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 365
  • Last Modified:

Detect keys down on application startup?

Hi,

I have written in C#. I would like the application to start in a "support mode" if the user is holding down Ctrl+Shift+S when the application starts.

As I need to detect the "support mode" keys before the application starts (i.e. the main form loads), I can't do it on the keydown event of the main form. This is because some of the things on the main form get initialised differently in support mode.

I can't find a way of getting the current keys pressed without responding to events.

How can I do this?
0
JimR123b
Asked:
JimR123b
  • 6
  • 5
1 Solution
 
cyberkiwiCommented:
In there, you could set up a singleton GlobalConfig class that contains members that you want to init.
Your main form can then also reference the singleton, e.g. GlobalConfig.GetSingleton.somesetting
0
 
JimR123bAuthor Commented:
How do I get the current state of the keys pressed?

0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
cyberkiwiCommented:
http://www.switchonthecode.com/tutorials/winforms-accessing-mouse-and-keyboard-state

Ctrl-Shift-S :

if((Control.ModifierKeys == (Keys.Control | Keys.Shift)) && Keyboard.IsKeyDown(Keys.S))
{
  //Do stuff here
}
0
 
JimR123bAuthor Commented:
I perhaps should have said, I'm using .Net Framework 3.5.

It appears that the Keyboard class is .Net 4?... http://msdn.microsoft.com/en-us/library/system.windows.input.keyboard.iskeydown.aspx

That's the kind of thing I'm looking for, but for .Net 3.5.

0
 
cyberkiwiCommented:
Please see the above link.
The class is created in the link, for pre .Net 4.
0
 
JimR123bAuthor Commented:
...Also, I can't use Control.ModifierKeys because I don't have a handle on a control yet, as it is needed before the main form is created.
0
 
cyberkiwiCommented:
Control is a static reference to the Control class, not an instance of a control.
0
 
JimR123bAuthor Commented:
Ah, I see. I did try code completion on "Control." to see what came up, and it only came up with a few things, none of which were "ModifierKeys". I've tried it in another class now, and I see "ModifierKeys" :)

...but how do I get the state of Keys.S without the Keyboard class? Is there something similar in Control?

0
 
JimR123bAuthor Commented:
Sorry, didn't see the definition of the class Keyboard in http://www.switchonthecode.com/tutorials/winforms-accessing-mouse-and-keyboard-state

0
 
cyberkiwiCommented:
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 6
  • 5
Tackle projects and never again get stuck behind a technical roadblock.
Join Now