[StructLayout(LayoutKind.Explicit,CharSet=CharSet.Unicode)]
public struct KEY_EVENT_RECORD
{
[FieldOffset(0),MarshalAs(UnmanagedType.Bool)]
public bool bKeyDown;
[FieldOffset(4),MarshalAs(UnmanagedType.U2)]
public ushort wRepeatCount;
[FieldOffset(6),MarshalAs(UnmanagedType.U2)]
public VirtualKeys wVirtualKeyCode;
[FieldOffset(8),MarshalAs(UnmanagedType.U2)]
public ushort wVirtualScanCode;
[FieldOffset(10)]
public char UnicodeChar;
[FieldOffset(12),MarshalAs(UnmanagedType.U4)]
public ControlKeyState dwControlKeyState;
}
// dwControlKeyState bitmask
[Flags]
public enum ControlKeyState
{
RIGHT_ALT_PRESSED = 0x1,
LEFT_ALT_PRESSED = 0x2,
RIGHT_CTRL_PRESSED = 0x4,
LEFT_CTRL_PRESSED = 0x8,
SHIFT_PRESSED = 0x10,
NUMLOCK_ON = 0x20,
SCROLLLOCK_ON = 0x40,
CAPSLOCK_ON = 0x80,
ENHANCED_KEY = 0x100
}
Structure KEY_EVENT_RECORD
Public TODO
End Structure
Public Enum ControlKeyStates
'/* dwControlKeyState bitmask */
RIGHT_ALT_PRESSED = &H1
LEFT_ALT_PRESSED = &H2
RIGHT_CTRL_PRESSED = &H4
LEFT_CTRL_PRESSED = &H8
SHIFT_PRESSED = &H10
NUMLOCK_ON = &H20
SCROLLLOCK_ON = &H40
CAPSLOCK_ON = &H80
ENHANCED_KEY = &H100
end enum
None.