成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為你介紹什么是VB.NET虛擬碼

開發 后端
這里簡單的介紹了VB.NET虛擬碼,為了統一鍵盤上所有鍵的編碼,于是就提出了VB.NET虛擬碼概念,希望本篇文章對大家有幫助。

接觸過編程2年的朋友都知道,其實編程就是那么點事,現在我們就簡單的看看關于VB.NET虛擬碼的問題。當用戶按下鍵盤上的一個鍵時,鍵盤內的芯片會檢測到這個動作,并把這個信號傳送到計算機。如何區別是哪一個鍵被按下了呢?鍵盤上的所有按鍵都有一個編碼,稱作鍵盤掃描碼。當你按下一個鍵時,這個鍵的掃描碼就被傳給系統。掃描碼是跟具體的硬件相關的,同一個鍵,在不同鍵盤上的掃描碼有可能不同。鍵盤控制器就是將這個掃描碼傳給計算機,然后交給鍵盤驅動程序。鍵盤驅動程序會完成相關的工作,并把這個掃描碼轉換為鍵盤虛擬碼。

什么是VB.NET虛擬碼呢?因為掃描碼與硬件相關,不具有通用性,為了統一鍵盤上所有鍵的編碼,于是就提出了VB.NET虛擬碼概念。無論什么鍵盤,同一個按鍵的虛擬碼總是相同的,這樣程序就可以識別了。簡單點說,虛擬碼就是我們經常可以看到的像VK_A,VK_B這樣的常數,比如鍵A的虛擬碼是65,寫成16進制就是&H41,注意,人們經常用16進制來表示虛擬碼。

#T#鍵盤驅動程序把掃描碼轉換為虛擬碼后,會把這個鍵盤操作的掃描碼和虛擬碼還有其它信息一起傳遞給操作系統。然后操作系統則會把這些信息封裝在一個消息中,并把這個鍵盤消息插入到消息列隊。最后,要是不出意外的話,這個鍵盤消息最終會被送到當前的活動窗口那里,活動窗口所在的應用程序接收到這個消息后,就知道鍵盤上哪個鍵被按下,也就可以決定該作出什么響應給用戶了。這個過程可以簡單的如下表示:
用戶按下按鍵-----鍵盤驅動程序將此事件傳遞給操作系統-----操作系統將鍵盤事件插入消息隊列-----鍵盤消息被發送到當前活動窗口
明白了這個過程,我們就可以編程實現在其中的某個環節來模擬鍵盤操作了。在VB中,有多種方法可以實現鍵盤模擬,我們就介紹幾種比較典型的。

局部級模擬
從上面的流程可以看出,鍵盤事件是最終被送到活動窗口,然后才引起目標程序響應的。那么最直接的模擬方法就是:直接偽造一個鍵盤消息發給目標程序。哈哈,這實在是很簡單,windows提供了幾個這樣的API函數可以實現直接向目標程序發送消息的功能,常用的有SendMessage和 PostMessage,它們的區別是PostMessage函數直接把消息仍給目標程序就不管了,而SendMessage把消息發出去后,還要等待目標程序返回些什么東西才好。這里要注意的是,模擬鍵盤消息一定要用PostMessage函數才好,用SendMessage是不正確的(因為模擬鍵盤消息是不需要返回值的,不然目標程序會沒反應),切記切記!PostMessage函數的VB聲明如下:

  1. Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) 
    As Long 

參數hwnd 是你要發送消息的目標程序上某個控件的句柄,參數wMsg 是消息的類型,表示你要發送什么樣的消息,最后wParam 和lParam 這兩個參數是隨消息附加的數據,具體內容要由消息決定。

再來看看wMsg 這個參數,要模擬按鍵就靠這個了。鍵盤消息常用的有如下幾個:
WM_KEYDOWN     表示一個普通鍵被按下
WM_KEYUP       表示一個普通鍵被釋放
WM_SYSKEYDOWN  表示一個系統鍵被按下,比如Alt鍵
WM_SYSKEYUP    表示一個系統鍵被釋放,比如Alt鍵

責任編輯:田樹 來源: 博客
相關推薦

2009-10-28 11:13:39

VB.NET虛擬框架

2009-11-02 17:24:57

VB.NET語言

2009-11-03 10:30:47

VB.NET繼承

2009-10-28 09:55:29

VB.NET MyCl

2010-01-08 14:14:27

VB.NET使用Fin

2010-01-18 17:09:52

VB.NET創建虛擬目

2010-01-22 10:41:33

VB.NET聲明結構

2009-11-10 12:42:47

VB.NET Prin

2009-10-12 13:19:14

VB.NET線程同步

2009-11-10 10:28:20

VB.NET誕生

2010-01-21 16:45:00

VB.NET繼承規則

2010-01-07 15:25:11

VB.NET數組

2009-10-12 15:02:51

VB.NET動態控件

2009-11-02 10:42:04

VB.NET EXCE

2010-01-08 16:19:00

VB.NET類型單位命

2010-01-22 17:22:49

VB.NET事件訪問器

2010-01-07 15:49:10

VB.NET DoLoop

2010-01-19 10:03:35

VB.NET Labe

2010-01-08 13:35:35

VB.NET寫Log方

2010-01-11 14:06:14

VB.NET時間函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 高清黄色毛片 | 欧美一区二区免费 | 黄色精品 | 国产精品一区二区在线 | 久久国产精品视频观看 | 国产九九av| 欧美精品一区二区三区蜜桃视频 | 99久久婷婷国产综合精品电影 | 免费黄色日本 | 91久久精品一区二区二区 | 高清一区二区三区 | 91国在线 | zzzwww在线看片免费 | 色综合久 | 亚洲人成人网 | 国产日韩精品一区 | 嫩草研究影院 | 欧美亚洲国产日韩 | 人碰人操 | 日韩精品一区二区三区四区视频 | 欧美一级欧美一级在线播放 | 福利片在线 | 国产精品成人一区二区 | 色在线视频网站 | 亚洲欧洲一区二区 | 国产精品污污视频 | 国产婷婷色综合av蜜臀av | 久久9精品 | 精品1区2区 | 91porn在线观看 | 欧美精品一二区 | 欧美精品福利视频 | 欧美国产亚洲一区二区 | 黄a网站 | 久久久一区二区三区 | 国产一区二区三区视频 | 成人欧美一区二区三区白人 | 成人久久18免费网站麻豆 | 综合久久综合久久 | 欧美精品乱码久久久久久按摩 | 久久久久久免费毛片精品 |