.netでNumLock、CapsLock、ScrollLockキーの状態を確認する方法はありますか?.netでNumLock、CapsLock、ScrollLockの状態を確認する方法はありますか?
答えて
インポートWinAPIの関数GetKeyState
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
public static extern short GetKeyState(int keyCode);
、その後、あなたはその
bool CapsLock = (((ushort)GetKeyState(0x14)) & 0xffff) != 0;
bool NumLock = (((ushort)GetKeyState(0x90)) & 0xffff) != 0;
bool ScrollLock = (((ushort)GetKeyState(0x91)) & 0xffff) != 0;
EDITようにそれを使用することができます:上記のフレームワーク2.0 +のためにあなたが
を使用することができ、フレームワーク1.1のためでありますフレームワーク2.0以上を使用するとあなたがよ
var isNumLockToggled = Keyboard.IsKeyToggled(Key.NumLock);
var isCapsLockToggled = Keyboard.IsKeyToggled(Key.CapsLock);
var isScrollLockToggled = Keyboard.IsKeyToggled(Key.Scroll);
:WPFで開発しながら、誰もがこのスレッドに遭遇した場合、フレームワークの機能
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.iskeylocked%28v=vs.80%29.aspxは
public static bool NumlockActive()
{
return Control.IsKeyLocked(Keys.NumLock);
}
は、あなたは、.NET 3.0の中に導入されたKeyboard.IsToggledメソッドを使用することができますあなたのクラスの先頭に以下のusing
ディレクティブを追加してください:
using System.Windows.Input;
内部的には、IsToggled()メソッドは、指定されたキーにKeyStates.Toggled
フラグが設定されているかどうかを確認します。
[Flags]
public enum KeyStates : byte
{
None = (byte) 0,
Down = (byte) 1,
Toggled = (byte) 2,
}
チェック状態
あなたが使用することができますCapsLockキー、NumLockキーとスクロールロックキー Control.IsKeyLocked
方法の状態を確認するには:積極的に駅を表示
var capsLockIsOn = Control.IsKeyLocked(Keys.CapsLock);
をte
アプリケーションにフォーカス処理がないときにロックキーをオンまたはオフにすることができるため、フォームのキーボードイベントでキーロック状態の変更を検出するには不十分であり、あなたのフォームのアクティベーションイベントのような他の場所やグローバルキーボードフックを登録する必要があります。
シンプルで信頼できる解決策として、Application.Idle
イベントでステータスを確認できます。フォームが閉じたときに、アイドルイベントハンドラをデタッチする必要があります。
public Form1()
{
InitializeComponent();
Application.Idle += Application_Idle;
}
void Application_Idle(object sender, EventArgs e)
{
if (Control.IsKeyLocked(Keys.CapsLock))
toolStripStatusLabel1.Text = "CapsLock is On";
else
toolStripStatusLabel1.Text = "";
}
protected override void OnFormClosed(FormClosedEventArgs e)
{
Application.Idle -= Application_Idle;
base.OnFormClosed(e);
}
アプリケーションが実行されていない場合はどうなりますか?たとえば、ログインウィンドウを開いて、キャップがオンになっていることをユーザーに警告したい場合。 –
@LeandroTuponeログインウィンドウが表示されているときは、アプリケーションが実行中であることを意味します。必要なときにキーの状態を確認するには、最初のオプションを使用します。また、積極的に状態を認識するために、2番目のオプションを使用できます。 –
- 1. UWP - NumLockとCapsLockの状態を確認するには?
- 2. ミュート状態を確認する方法はありますか?
- 3. C#でサーバソケットの状態を確認する方法はありますか?
- 4. ファイルバッファの現在の状態を確認する方法はありますか?
- 5. JavaFXでCapsLock状態を取得する
- 6. AndroidでTorchのライトステータスにアクセスする方法はありますか?フラッシュライトがプログラム状態でオン状態かオフ状態かを確認したい
- 7. Perlのシステム()のパイプラインで最初のプログラムの状態を確認する方法はありますか?
- 8. Windows Phone 7で機内モードの状態をプログラムで確認する方法はありますか?
- 9. JavaScriptの状態をASCII値で確認する方法は?
- 10. Vuex状態オブジェクトが空であるかどうかを確認する方法
- 11. 飛行機モードの状態をプログラムで確認する方法はありますか?
- 12. 状態の更新が完了したかどうかを確認する方法はありますか?
- 13. トグルボタンの状態を他のクラスから確認する方法
- 14. アンドロイドのEditTextの表示状態を確認する方法は?
- 15. React Nativeのビューの状態を確認する方法は?
- 16. EFコアの主キーと外部キーの状態を確認する方法はありますか?
- 17. プロセスがビジー状態かどうかを確認する方法
- 18. PythonでSelenium Webdriverのトグルボタンの状態を確認する方法
- 19. ブート時にsdcardの状態を確認する方法は?
- 20. TFTP接続の接続状態を確認する方法は?
- 21. Node.jsイベントの 'fulfilled'状態を確認する方法は?
- 22. Kinesisクライアントの接続状態を確認する方法は?
- 23. HorizontalScrollViewのスクロール状態を確認する方法は?
- 24. XCTest - HTMLチェックボックスの状態を確認する方法は?
- 25. ionic3でインターネットの状態を確認する方法
- 26. Cでタスクの状態を確認する方法
- 27. コンピュータのオンライン状態を確認する最善の方法は何ですか?
- 28. スーパービューに関するビューの状態を確認する方法
- 29. SilverlightでNumlockの状態を取得する
ここで間違っている可能性がありますが、これはWindows版の場合のみ厳密には動作しませんか?最初のオプションは直接.dllにフックし、2番目のオプションはSystem.Windows.Formsを必要とします。 –
WinFormsを使用していない場合(例としてコンソール)、 '(bool)Console.CapsLock'を使用できます。 –