2

Caps Lock が押されているかどうかを確認する必要があり、オンラインで int を必要とする関数が見つかりました。

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

2 に答える 2

4

C# には次のものもあります。

if (Control.IsKeyLocked(Keys.CapsLock))

Keys.CapsLock = 20 (16 進数で 0x14)

于 2012-07-18T16:12:53.790 に答える
2

グーグルから、私はこれを見つけまし

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

0x14VK_CAPITALあること。

したがって、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!");
}

もちろん、Holger の言うことは、P/Invoke を使用するよりもはるかに理にかなっています。

于 2012-07-18T16:09:33.393 に答える