Solved

How to get keyboard press SHIFT outside keyboard event holder function?

Posted on 2009-05-17
4
426 Views
Last Modified: 2013-12-17
Hi experts!

  Im using C# 2008 , WinForm NET 2. I want in one procedure to get state of keyboard (to check for example will user  is press SHIFT button, or other button)

 I need this to make better speed of development, I create database application and want when I press SHIFT to skip check for user/ name / password . (Of course I have addition technique which can do this only  in my DEV computer, not in production).

 So in general I need to check for press SHIFT state, but on function which are not some of keyboard event holder. How to do this ?
0
Comment
Question by:dvplayltd
  • 2
  • 2
4 Comments
 
LVL 8

Expert Comment

by:dericstone
ID: 24405373
Add KeyDown and KeyUp events to your top-level Form as in the attached snippet. Then store the state of the shift key. Make sure you have enabled the KeyPreview property of the Form.

namespace WindowsFormsApplication1

{

  public partial class Form1 : Form

  {

    public Form1()

    {

      InitializeComponent();
 

      this.KeyPreview = true;

    }
 

    private void Form1_KeyDown(object sender, KeyEventArgs e)

    {

      checkBox1.Checked = e.Shift;

    }
 

    private void Form1_KeyUp(object sender, KeyEventArgs e)

    {

      checkBox1.Checked = e.Shift;

    }

  }

}

Open in new window

0
 

Author Comment

by:dvplayltd
ID: 24405459
To dericstone

You send me rigth code, but it is not for my case.
I do not get at all
private void Form1_KeyDown(object sender, KeyEventArgs e)
or any event connected with key because I already press it BEFORE start my form

I need to produce such behavour - press SHIFT, then start my program and go without check.

I need someway to scan current state of keyboard, but outside of event which hande keyboard event. That is question.

0
 
LVL 8

Accepted Solution

by:
dericstone earned 500 total points
ID: 24405579
In that case, you might try using PInvoke on GetAsyncKeyState as in the attached snippet.
using System.Runtime.InteropServices;
 

namespace WindowsFormsApplication1

{

  public partial class Form1 : Form

  {

    const int VK_SHIFT = 0x0010;
 

    [DllImport("User32.dll")]

    public static extern short GetAsyncKeyState(int vKey);
 

    public Form1()

    {

      InitializeComponent();
 

      short key = GetAsyncKeyState(VK_SHIFT);

      checkBox1.Checked = (key & 0x8000) != 0;

    }

  }

}

Open in new window

0
 

Author Closing Comment

by:dvplayltd
ID: 31582323
Yeee. This work, thank you ! P.S: I COM world I use API and think that in NET have some diffrent object ... but look that is same.
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Flash (http://en.wikipedia.org/wiki/Adobe_Flash) has evolved over the years to where it has become a masterful tool for displaying content screen.  It has excellent layout placement, UI precision as well as rendering capabilities. This, along with t…
The object model of .Net can be overwhelming at times – so overwhelming that quite trivial tasks often take hours of research. In this case, the task at hand was to populate the datagrid from SQL Server database in Visual Studio 2008 Windows applica…
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now