計算機二級VisualBasic輔導(dǎo):“一鍵功能”的設(shè)計、實現(xiàn)與應(yīng)用

字號:

一、引言
    在Windows桌面上創(chuàng)建快捷方式的應(yīng)用程序,可以通過設(shè)置它的屬性來實現(xiàn)一鍵調(diào)用該程序的功能(即“一鍵功能”),可是,如果每個常用程序都通過創(chuàng)建快捷方式來實現(xiàn)“一鍵功能”,則桌面上將顯得雜亂無章; 怎樣才能既不為應(yīng)用程序創(chuàng)建快捷方式,又能實現(xiàn)“一鍵功能”呢?下面介紹用VB編程實現(xiàn)“一鍵功能”的方法及其應(yīng)用。
    二、編程原理
    在API函數(shù)中有一個GetAsyncKeyState函數(shù),功能是判斷函數(shù)調(diào)用時指定虛擬鍵的狀態(tài),即調(diào)用該函數(shù)時,可以檢測到用戶想檢測的鍵是否被按下該函數(shù)的聲明如下:
    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    參數(shù)vKey表示想檢測鍵的掃描代碼,該掃描代碼由vbKey和鍵面字符組成,例如F1、F2、F3、A的掃描代碼分別為vbKeyF1、vbKeyF2、vbKeyF3、vbKeyA。如果用戶按下指定的鍵,函數(shù)的返回值為小于0的整數(shù),否則返回大于或等于0的整數(shù)。因此,可以根據(jù)返回值是否小于0,檢測是否按下指定的鍵。該函數(shù)還有一個非常好的特點,那就是無論調(diào)用它的程序是在前臺還是在后臺運行,它都能夠檢測鍵盤上某一鍵是否被按下(即一旦調(diào)該函數(shù),它在整個系統(tǒng)范圍內(nèi)都有效)。利用這個特點,我們便可以為某一個功能鍵定義一個應(yīng)用程序,然后再用計時器實時檢測該鍵狀態(tài),當該鍵被按下時調(diào)用該應(yīng)用程序,從而實現(xiàn)“一鍵功能”。
    三、應(yīng)用編程
    利用上述原理進行以下兩個方面的應(yīng)用:1、一鍵調(diào)用編程實現(xiàn)的特定功能(過程的功能);2、一鍵調(diào)用安裝在Windows下的應(yīng)用程序。
    對于第一方面的應(yīng)用,主要是編寫一些特定功能的過程,如關(guān)機、重新啟動、打開光驅(qū)、關(guān)閉光驅(qū),鎖定屏幕。它的編程思路是(這些功能都是簡單地調(diào)用API函數(shù)實現(xiàn)的,這里不再敘述): 程序運行時,首先檢測是否為這些功能定義了快捷鍵(保存在FunctionKey.txt文件中),如果沒有定義,則顯示如圖所示的界面,讓用戶定義快捷鍵并保存。如果已經(jīng)定義,則把它們讀到與特定功能的函數(shù)相對應(yīng)的數(shù)組元素中,并顯示在應(yīng)用程序界面的相應(yīng)位置。如果此時你按下了某個已經(jīng)定義的功能鍵,當GetAsyncKeyState函數(shù)檢測到后,便立即執(zhí)行相應(yīng)的過程。
    對于第二方面的應(yīng)用,主要是讓用戶為自己常用的應(yīng)用程序定義快捷鍵(可以任意定義功能鍵和應(yīng)用程序),從而可以方便快捷地打開它。它的編程思路與第一種相同,所不同的是,在CustomKey.txt文件中保存的是快捷鍵和與之相對應(yīng)的應(yīng)用程序文件名(包括路徑),當讀文件時,是把快捷鍵和應(yīng)用程序文件名分別讀到不同的數(shù)組元素中。
    下面讓我們動手實踐一下。啟動VB并新建一個名為AkeyFunction工程,窗體文件名也為AkeyFunction,然后在窗體上添加以下控件: 兩個框架、六個下拉組合框、五個命令按鈕、八個標簽、一個列表框、一個計時器、一個通用對話框,界面設(shè)計如圖1所示(運行時計時器和通用對話框不可見)。修改窗體的名稱為“一鍵功能”,BorderStyle為1,ControlBox為False,Visible為False,KeyPreview為True; 兩個框架的Caption分別為“特定功能區(qū)”、“自定義功能區(qū)”; 六個下拉組合框為一個數(shù)組,名稱為cmbChooseKey,Text都為空; 五個命令按鈕的名稱依次為cmdAdd、cmdDel、cmdOk、cmdCancel、cmdApply,Caption依次為“添加…”、“刪除”、“確定”、“取消”、“應(yīng)用”; 八個標簽的Caption依次為“提示: 當程序運行時,按F12顯示該界面”、“快捷鍵”、“特定功能”、“關(guān)機”、“重新啟動”、“鎖定屏幕”、“打開光驅(qū)”、“關(guān)閉光驅(qū)”; 計時器的Interval為200; 通用對話框的名稱cmnAdd; 其他屬性使用缺省值。