如何提高調用WindowAPI函數編程技巧
一.創建臨時文件
---- 臨時文件用來保存軟件運行過程中的臨時變化,這對于熟悉WORD等軟件的人來說,經常會遇到。那么臨時文件是如何產生的呢,其實很簡單,只需要一個API函數就可以。
---- 1.拷貝聲明函數(方法同前)
| Private Declare Function GetTempFileName Lib "kernel32" _ Alias "GetTempFileNameA" (ByVal lpszPath As String, _ ByVal lpPrefixString As String, ByVal wUnique As Long, _ ByVal lpTempFileName As String) As Long |
參數定義如下:
lpszPath =傳入保存臨時文件的路徑 ,如"C:mytemp"
lpPrefixString=傳入臨時文件名開始的前三個字母,
起到幫助識別臨時文件來源的作用。
wUnique =0 ,windows隨機產生文件名;否則安其值定義文件名。
lpTempFileName=返回隨機文件名
---- 2.返回臨時文件名
| Private Function GenTempName(sPath As String) Dim sPrefix As String Dim lUnique As Long Dim sTempFileName As String If IsEmpty(sPath) Then sPath = "c:emp" sPrefix = "TVB" lUnique = 0 'windows隨機給名 sTempFileName = Space$(100) GetTempFileName sPath, sPrefix, lUnique, sTempFileName sTempFileName = Mid$(sTempFileName, 1, InStr(sTempFileName, Chr$(0)) - 1) '去掉多余空格 GenTempName = sTempFileName End Function |
---- 3.將下面代碼加入到form1_click()事件中
MsgBox GenTempName("c:emp")
---- 4.運行,鼠標點擊form,彈出msgbox,顯示生成"c:empTVB724.tmp"文件,用文件管理器查看,在c:emp下有TVB724.tmp 文件,長度為0K。
---- 需要注意的是,傳入的路徑必須是有效路徑,否則GenTempName函數返回0,lpTempFileName中也沒有臨時文件名。
二.結束語
---- 從上面可以看出,API函數的確簡單高效,但也充滿一些看似高深的變量而使人卻步。我們不禁會問,究竟什么時候要用到API函數?具體哪些函數可以解決我的問題?,那些函數中的變量都代表什么?其實對這些問題,即使對一個VB高手也難給出明確的回答,因為API函數庫實在太龐大了,每一個人最終只能熟悉其中的一小部分(這也可能是調用API的文章層出不窮的原因吧)。總結自己的一點經驗,我覺得應該注意以下幾點。
---- 1.熟練掌握VB基本技巧,了解其所能所不能,這是最基本的要求。
---- 2.了解WINDOWS內部控制機理,這樣對一些復雜的問題就可以逐步分析其調用機制,初步確定采用哪部分的API函數來解決問題。
---- 3.案頭必備一本最新的VB版的WINDOWS API 大全。
---- 4.多看別人的程序。報紙雜志,尤其是網上這方面的文章數不清。這是最快的方法。
---- 5.隨用隨查。永遠不要在用不到的函數上浪費寶貴的時間