?
Solved

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

Posted on 2009-05-17
4
Medium Priority
?
452 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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 2000 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

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

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.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

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…
Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
Michael from AdRem Software explains how to view the most utilized and worst performing nodes in your network, by accessing the Top Charts view in NetCrunch network monitor (https://www.adremsoft.com/). Top Charts is a view in which you can set seve…
In this video, Percona Solutions Engineer Barrett Chambers discusses some of the basic syntax differences between MySQL and MongoDB. To learn more check out our webinar on MongoDB administration for MySQL DBA: https://www.percona.com/resources/we…
Suggested Courses

764 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