私は愚かで、インジケーター ライトのないキーボードを購入したので、Caps、Scroll、および Num Lock のステータスをポップアップ表示する簡単なプログラムを作成することにしました。
私は WinForms に決めました。それは私が慣れているものであり、私のメイン フォーム クラスは次のようになっているからです。
globalKeyboardHook gkh = new globalKeyboardHook();
public Indicators()
{
InitializeComponent();
}
public void CheckKeyCaps()
{
notifyIcon1.BalloonTipText = (IsKeyLocked(Keys.CapsLock)) ? "Caps Lock: ON" : "Caps Lock: OFF";
notifyIcon1.ShowBalloonTip(100);
}
public void CheckKeyScroll()
{
notifyIcon1.BalloonTipText = (IsKeyLocked(Keys.Scroll)) ? "Scroll Lock: ON" : "Scroll Lock: OFF";
notifyIcon1.ShowBalloonTip(100);
}
public void CheckKeyNum()
{
notifyIcon1.BalloonTipText = IsKeyLocked(Keys.NumLock) ? "Num Lock: ON" : "Num Lock: OFF";
notifyIcon1.ShowBalloonTip(100);
}
private void IndicatorsLoad(object sender, EventArgs e)
{
gkh.HookedKeys.Add(Keys.Scroll);
gkh.HookedKeys.Add(Keys.CapsLock);
gkh.HookedKeys.Add(Keys.NumLock);
gkh.KeyUp += gkh_KeyUp;
Visible = false;
ShowInTaskbar = false;
notifyIcon1.Icon = new Icon(SystemIcons.Application, 40, 40);
}
public void gkh_KeyUp(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Scroll:
CheckKeyScroll();
break;
case Keys.CapsLock:
CheckKeyCaps();
break;
case Keys.NumLock:
CheckKeyNum();
break;
}
}
このライブラリを利用してキーボード フックを追加したところ、CapsLock キーのポップアップのみが切り替えられるようになりました。Num または Scroll Lock を押すと、ポップアップに「Scroll Lock: ON」または「Num Lock: ON」のみが表示されます。
スイッチ、イベント ハンドラーにブレークポイントを設定してデバッガーを実行しようとしましたが、先頭または末尾を作成できません。私はプログラミングに比較的慣れていない (6 か月) ので、どこかでエラーを犯したと思いますが、どこを理解するのに十分な知識がありません。