How to detect Num lock indicator is active in excel...
Or enable num lock indicator in status bar
ジョン、私が知る限り (間違っている可能性もあります)、Application.Statusbar
あなたが望むように操作するオプションはありません。
あなたが望むものを達成できるAPIについても知りません。したがって、他の誰かが来てメソッドを投稿するまで(ある場合)、あなたの質問に対する答えは
「それはできません」
HTH
質問にC#のタグを付けているので、C#アプリを開発していると思います。
その中であなたは使うことができます
if (Control.IsKeyLocked(Keys.NumLock))
NumLockがオンになっているかどうかを検出します。
Num-Lockを設定するには、次を使用できます
[DllImport("user32.dll")]
static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);
private void PressKb(Keys keyCode)
{
const int KEYEVENTF_EXTENDEDKEY = 0x1;
const int KEYEVENTF_KEYUP = 0x2;
keybd_event((byte)keyCode, 0x45, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event((byte)keyCode, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
}
そしてそれで
PressKb(Keys.NumLock);
とにかくアクティブな場合にのみインジケーターが表示されるので、num-lockがアクティブであるかどうかを確認できます。VBAでこれを行う必要がある場合(ソリューションはここから取得)。
'put these declarations at the top of the module
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long)
As Integer
Private Const kNumlock = 144
そして、あなたがそれを必要とするところ:
Public Function NumLock() As Boolean
NumLock = KeyState(kNumlock)
End Function
Private Function KeyState(lKey As Long) As Boolean
KeyState = CBool(GetKeyState(lKey))
End Function