大写锁定的数字ID是多少?

时间:2012-07-18 16:07:41

标签: c# dllimport numeric keycode capslock

我需要检查是否按下了大写锁定,并找到了一个需要联机的函数。

[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
    public static extern short GetKeyState(int keyCode);

2 个答案:

答案 0 :(得分:4)

C#也有:

if (Control.IsKeyLocked(Keys.CapsLock))

Keys.CapsLock = 20(十六进制为0x14)

答案 1 :(得分:2)

通过Google搜索,我找到了this one

void CheckKeyState()
{
   if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0)
      AfxMessageBox("Caps Lock ON!");
   else
      AfxMessageBox("Caps Lock OFF!");
}

VK_CAPITAL 0x14

所以你可以用C#编写:

public void CheckKeyState()
{
   if ((GetKeyState(0x14) & 0x0001)!=0)
      System.Windows.Forms.MessageBox.Show("Caps Lock ON!");
   else
      System.Windows.Forms.MessageBox.Show("Caps Lock OFF!");
}

当然,what Holger says比使用P / Invoke更有意义。