由于 API 過程存在于 Visual Basic 應(yīng)用程序之外的文件中,在使用時必須指定過程的位置和調(diào)用參數(shù)。可以用 Declare 語句提供這類信息。在聲明了 API 過程之后,可以把它當做 Visual Basic 自己的過程使用?!?
如果在 Visual Basic 中直接調(diào)用 API,那么 Visual Basic 環(huán)境下固有的安全機制將受到不利影響。這意味著在測試和調(diào)試程序時可能會遇到更多的系統(tǒng)故障。為了減少這種危險,在聲明 API 過程、傳遞參數(shù)和指定類型的時候務(wù)必要小心。無論在什么情況下,一定要經(jīng)常保存已經(jīng)完成的工作。API 可以提供不同凡響的功能,但是要用好它也不容易。 下例將演示如何調(diào)用 Windows API 中的過程。調(diào)用函數(shù) SetWindowText 來改變一個窗體的標題欄。當然,在實際應(yīng)用中,通??偸抢?Visual Basic 的 Caption 屬性來改變標題欄。該示例的目的在于說明如何聲明并調(diào)用過程。 聲明 API 過程 首先,在模塊的聲明部分對過程進行聲明: Private Declare Function SetWindowText Lib "user32" _ Alias "SetWindowTextA" (ByVal hwnd As Long, _ ByVal lpString As String) As Long 過程的精確語法定義可以用 API Viewer 應(yīng)用程序找到,在 Win32api.txt 文件中也可以找到它。如果將 Declare 放在 Form 或者 Class 模塊內(nèi),那么必須在它的前面加上 Private 關(guān)鍵字。同一個 API 過程在一個工程中只需聲明一次;然后可以任意調(diào)用。 調(diào)用 API 過程 在聲明了函數(shù)之后,調(diào)用它的方式與標準的 Visual Basic 函數(shù)相同。在下例中,F(xiàn)orm Load 事件調(diào)用了上面聲明的過程。 Private Sub Form_Load() SetWindowText Form1.hWnd, "Welcome to VB" End Sub 在運行這段代碼時,函數(shù)首先使用 hWnd 屬性確定要修改標題欄的窗口(Form1.hWnd),然后將標題欄修改為“Welcome to VB”。 需要牢記的是:Visual Basic 不能驗證傳遞到 API 過程的值是否正確。如果傳遞了錯誤的值,那么過程將出錯,并可能因此導(dǎo)致 Visual Basic 應(yīng)用程序停止運行。這樣就不得不重新加載和啟動應(yīng)用程序。在測試 API 過程時千萬要小心,一定要經(jīng)常地保存自己的工作。 極少數(shù) API 調(diào)用能夠識別缺省的 Variant 數(shù)據(jù)類型。最好聲明具體的變量類型并使用 Option Explicit,這樣,API 的可靠性要高得多。 本文來自: 乘風(fēng)原創(chuàng)程序(http://www.) 詳細出處參考:http://study./web/162/17536.htm?3369281525=657115321 |
|