局部級模擬鍵盤


鍵盤是我們使用計算機的一個很重要的輸入設備了,即使在鼠標大行其道的今天,很多程式依然離不開鍵盤來操作。 但是有時候,一些重複性的,很繁瑣的鍵盤操作總會讓人疲憊,於是就有了用程式來代替人們按鍵的方法,這樣可以把很多重複性的鍵盤操作交給程式來模擬,省了很多精力,按鍵精靈就是這樣的一個軟件。 那麼我們怎樣才能用VB來寫一個程式,達到與按鍵精靈類似的功能呢? 那就讓我們來先瞭解一下windows中響應鍵盤事件的機制。 當用戶按下鍵盤上的一個鍵時,鍵盤內的晶片會檢測到這個動作,並把這個信號傳送到計算機。 如何區別是哪一個鍵被按下了呢? 鍵盤上的所有按鍵都有一個編碼,稱作鍵盤掃描碼。 當你按下一個鍵時,這個鍵的掃描碼就被傳給系統。 掃描碼是跟具體的硬體相關的,同一個鍵,在不同鍵盤上的掃描碼有可能不同。 鍵盤控制器就是將這個掃描碼傳給計算機,然後交給鍵盤驅動程式。 鍵盤驅動程式會完成相關的工作,並把這個掃描碼轉換為鍵盤虛擬碼。 什麼是虛擬碼呢? 因為掃描碼與硬體相關,不具有通用性,為了統一鍵盤上所有鍵的編碼,於是就提出了虛擬碼概念。 無論什麼鍵盤,同一個按鍵的虛擬碼總是相同的,這樣程式就可以識別了。 簡單點說,虛擬碼就是我們經常可以看到的像VK_A,VK_B這樣的常數,比如鍵A的虛擬碼是65,寫成16進制就是&H41,注意,人們經常用16進制來表示虛擬碼。 當鍵盤驅動程式把掃描碼轉換為虛擬碼後,會把這個鍵盤操作的掃描碼和虛擬碼還有其他資訊一起傳遞給操作系統。 然後操作系統則會把這些資訊封裝在一個消息中,並把這個鍵盤消息插入到消息列隊。 最後,要是不出意外的話,這個鍵盤消息最終會被送到當前的活動窗口那裡,活動視窗所在的應用程式接收到這個消息後,就知道鍵盤上哪個鍵被按下,也就可以決定該作出什麼響應給用戶了。 這個過程可以簡單的如下表示: 用戶按下按鍵—–鍵盤驅動程式將此事件傳遞給操作系統—–操作系統將鍵盤事件插入消息隊列—–鍵盤消息被發送到當前活動窗口
明白了這個過程,我們就可以編程實現在其中的某個環節來模擬鍵盤操作了。 在VB中,有多種方法可以實現鍵盤模擬,我們就介紹幾種比較典型的。 1.局部級模擬

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

What is 9 + 15 ?
Please leave these two fields as-is:
IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)