簡體   English   中英

GetAsyncKeyState-檢查C#中的最高有效位

[英]GetAsyncKeyState - checking most significant bit in C#

我正在嘗試檢測何時使用GetAsyncKeyState主動按下了一個鍵(因為我也想利用異步檢查)。

屏蔽最高有效位並檢查非零值應該可以解決我的問題,但是我軟件的某些用戶發現檢測到隨機按鍵沒有被按下,這是我的方法是否有問題?有什么我不知道的因素嗎?

[DllImport("user32.dll")]
private static extern short GetAsyncKeyState(Keys vKey);

public static bool IsKeyDown(Keys vKey)
{
    return ((GetAsyncKeyState(vKey) & 0x8000) != 0);
}

慣用的方法是測試返回值是否為負:

return ((GetAsyncKeyState(vKey) < 0);

但是您的代碼執行相同的操作。 所以我想您的問題出在其他地方。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM