Type a page name and press Enter. You'll jump to the page if it exists, or you can create it if it doesn't.
To create a page in a module other than user32, prefix the name with the module name and a period.

GetKeyState (user32)

.

Summary

The GetKeyState function retrieves the status of the specified virtual key. The status specifies whether the key is up, down, or toggled (on, off—alternating each time the key is pressed).

VB.NET Signature

User-Defined Types:

Windows Input Simulator

An open source managed .NET wrapper written in C# is available on Codeplex at http://inputsimulator.codeplex.com/. It has all of these definitions complete with documented code comments and can be used to determine key states as well. Thanks to all the contributors at pinvoke.

Notes:

The following two constants are used in combination with the returned value to test the current state:

Tips & Tricks:

The Enum Keys in System.Windows.Forms has the key code used for this function, so you don't need to define const. If casting in this manner, beware that the Keys.Shift member does not behave in the way that you would expect; you should use one of Keys.Menu, Keys.LMenu, Keys.RMenu instead. Return value will be 0 if off and 1 if on as a toggle and -127 if key held down.

Do not use (ByVal nVirtKey As Long) but (ByVal nVirtKey As Short), in VS2005, in fact, in the first case you will have a PInvoke error.

Sample Code:

This Sample use this API to create a new textbox to support overwrite mode, testing the state of insert key.

Protected Overrides Sub OnKeyPress(ByVal e As System.Windows.Forms.KeyPressEventArgs)
bInserting = GetKeyState(Keys.Insert)
If Not bInserting Then
Me.SelectionLength = 1
End If
MyBase.OnKeyPress(e)
End Sub
End Class

ByVal is a VB keyword that specifies a variable to be passed as a parameter BY VALUE. In other words, if the function or sub changes the value of the internal variable, it does not change the value of the external variable that was passed to it.

4/25/2007 9:19:55 AM - josep1er@cmich.edu-141.209.229.179

ByVal is a VB keyword that specifies a variable to be passed as a parameter BY VALUE. In other words, if the function or sub changes the value of the internal variable, it does not change the value of the external variable that was passed to it.

4/25/2007 9:19:55 AM - josep1er@cmich.edu-141.209.229.179

The mechanism provided by the CLR that enables managed code to call static DLL exports.

3/15/2016 7:24:19 AM - 37.47.33.255

Please edit this page!

Do you have...

helpful tips or sample code to share for using this API in managed code?

corrections to the existing content?

variations of the signature you want to share?

additional languages you want to include?

Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).