用C#編程實現檢查Scroll Lock鍵的狀態

來源:互聯網
上載者:User
 

用C#編程實現檢查Scroll Lock鍵的狀態

花純春@ http://blog.csdn.net/metababy

Scroll Lock鍵的作用,和Num Lock,Caps Lock等是類似的,你在電腦上試一下就知道了,它主要是管視窗滾動的。

 

GetKeyState函數

Scroll Lock鍵在電腦上是很少用的按鍵。但在Excel中,有時你會發現怪問題,結果一檢查會找到是Scroll Lock鍵的問題。比如:當scroll lock 鍵按下後,你用上下鍵,想將游標移動到前一或後一格,會發現,游標沒有動,只是視窗在動。

the GetKeyState Windows API function. This requires the use of the System.Runtime.InteropServices namespace.

using System.Runtime.InteropServices;

要用到Windows API函數- GetKeyState。這需要使用System.Runtime.InteropServices名稱空間。

using System.Runtime.InteropServices;

GetKeyState函數來自user32.dll。它只需要一個參數,那就是你要檢查狀態的那個鍵。

用以下代碼片斷實現,匯入dll,並定義索引值。

[DllImport(“user32.dll”)]

public static extern short GetKeyState(int keyCode);

int VK_SCROLL=0x91;

GetKeyState返回一個16位整型數,其中包含兩個重要的位。

若高序位為1,則鍵處於DOWN狀態,否則為UP狀態。

若低序位為1,則鍵被觸發。例如CAPS LOCK鍵,被找開時將被觸發。若低序位置為0,則鍵被關閉,且不被觸發。觸發鍵在鍵盤上的指示燈,當鍵被觸發時即亮,鍵不被觸發時即滅。

詳見http://baike.baidu.com/view/1080073.html

知道了其原理,我們用以下代碼來將其位的0和1狀態轉換為bool類型。

bool scrollLock=Convert.ToBoolean(GetKeyState(VK_SCROLL)&1);

最後,我們用此代碼來測試一下:

if(scrolllLock)

       MessageBox.Show(“Scroll Lock處於啟用狀態!”);

檢查其他鍵的狀態

GetKeyState函數可以用於檢查任何鍵的狀態。比如檢查Caps Lock和Num Lock就用如下的定義:

int VK_CAPITAL=0x14;

int VK_NUMLOCK=0x90;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.