Code Snippet
private const byte VK_NUMLOCK = 0x90;
private const byte VK_LSHIFT = 0xA0;
private const byte VK_LMENU = 0xA4;
private const byte KEYEVENTF_EXTENDEDKEY = 0x01;
private const byte KEYEVENTF_KEYUP = 0x02;
[DllImport("user32.dll")]
public static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
[DllImport("user32.dll")]
public static extern short GetAsyncKeyState(int vkey);
private void button1_Click(object sender, EventArgs e)
{
keybd_event(VK_LSHIFT, 0x2A, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(VK_LMENU, 0x38, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(VK_NUMLOCK, 0x45, KEYEVENTF_EXTENDEDKEY, 0);
if ((GetAsyncKeyState(VK_LMENU) < 0) & (GetAsyncKeyState(VK_LSHIFT) < 0) & (GetAsyncKeyState(VK_NUMLOCK) < 0))
{
MessageBox.Show("Three keys o.k.");
}
keybd_event(VK_NUMLOCK, 0xC5, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
keybd_event(VK_LMENU, 0xB8, KEYEVENTF_KEYUP, 0);
keybd_event(VK_LSHIFT, 0xAA, KEYEVENTF_KEYUP, 0);
}