亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? vb的api編程精粹.txt

?? VB API編程精粹,精選VB API,用典型的實例說明api應用
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
VB的API編程精粹(1)

 

所謂API就是“應用程序接口”(Application Programing Interface),是一些用C語言編寫,由操作系統自身調用的函數。Windows API函數由許多“動態鏈接庫”或DLL組成。在32位Windows中,核心的Windows 
API DLL有如下一些: 
gdi32.dll----圖形顯示界面的API。 
kernel32.dll----處理低級任務(比如內存和任務管理)的API。 
user32.d11----處理窗口和消息(Visual Basic程序員能把其中一些當作事件訪問)的API。 
還不斷有新的API出現,處理新的操作系統擴展,比如E-MAIL、聯網和新的外設。 
由于Windows API函數不是Visual Basic的內部函數,所以在使用它們之前必須顯式地加以聲明。要想得到正確格式化的函數聲明,可以訪問WINAPI目錄下的文件WIN32API.TXT。 
本文只對Win95系統的API函數加以說明并調用Win95的內置功能。 
重新啟動計算機的實現 
在Windows下安裝過程序的用戶可能都有這樣的體會,當安裝完某些應用程序后,安裝程序會要求重新啟動計算機以使設置生效。那么,如果要用VB程序重新啟動計算機該如何實現呢?其實利用ExitWindowsEx函數即可。 
程序的編寫 
1.首先運行VB,然后新建一個工程(工程類型為標準EXE),然后雙擊Form1窗體,進入代碼(Code)輸入框,在其中輸入: 
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved 
As Long)As Long 
2.點擊“工具箱”中的commandbutton(命令按鈕)工具,即可在窗體Form1中加入一個命令按鈕,然后將該按鈕屬性中的Caption值定義為“重新啟動”。完成之后雙擊該按鈕,進入代碼(code)輸入框輸入以下代碼: 
Private Sub Command1_Click() 
ExitWindowsEx &H43,0 
End Sub 
程序的執行 
程序輸入完成后,點擊VB“運行”菜單中的“啟動”或“全面編譯”命令,然后點擊“重新啟動”按鈕,即可重新啟動計算機。 
磁盤格式化 
在Windows 9X中,當用鼠標右鍵單擊“我的電腦”中的“3.5軟盤A”然后在出現的右鍵菜單中選擇“格式化”選項,就將彈出標準的“磁盤格式化”窗口。下面我們來看看如何在應用程序中利用函數輕松調用Windows 95標準的“磁盤格式化”窗口,實現對磁盤相應的操作功能。 
程序的編寫 
1.與上例相同,首先運行VB,新建一個標準工程,然后利用“工具箱”在Form1窗體中加入一個命令按鈕對象,將該命令按鈕屬性中的Caption值定義為“軟盤格式化”。完成之后雙擊該按鈕,在代碼輸入框中輸入以下代碼: 
Private Sub Command1_Click() 
Call FormatFloppy '調用FormatFloppy過程 
End Sub 
2.然后用鼠標右擊窗體,選擇右鍵菜單中的“添加/添加模塊”選項,然后在出現的選擇框中選擇“模塊”類型,接著在出現的模塊代碼輸入框中加入以下代碼:(注:模塊是指一組聲明的集合,其后為過程) 
'通用聲明 
Public Const WM_CLOSE=&H10 
Declare Function FindWindow Lib "user32" Alias"FindWindowA"(ByVal lpClassName As Any, ByVal 
lpWindowName As Any)As Long 
Delare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer 
As String, ByVal nSize As Long) As Long 
Declare Function SetWindowPos Lib "user32"(BvVal hwnd As Long ByVal hWndInsertAfter As Long, 
ByVal X As long, ByVal y As Long, ByVal cx As Long,ByVal cy As Long, ByVal wFlags As Long) As Long 
Declare Function GetDesktopWindow Lib "user32"() As Long 
Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long)As Long 
Declare Function GetWindowRect Lib "user32"(ByVay hwnd As Long, lpRect As RECT) As Long 
Declare Sub Sleep Lib "kernel32" (ByValdwMilliseconds As Long) 
Type RECT 
Left As Long 
Top As Long 
Right As Long 
Bottom As Long 
End Type 
TypePOINTAPI 
X As Long 
y As Long 
End Type 
Const SWP_NOSIZE=&H1 
Const SWP_NOZORDER=&H4 
'FormatFloppy()過程聲明 
Public Sub FormatFloppy() 
Dim sBuffer As String, Windir As String, Procs As String, X 
Dim lResult As Long 
sBuffer = String$(255,0) 
lResult = GetWindowsDirectory(sBuffer, Len(sBuffer)) 
Windir = Trim(sBuffer) 
Procs = Left(Windir, lResult) & " undll32.exe shell32.dll,SHFormatDrive" 
Call CenterDialog("Format - 3? Floppy (A:)") 
X = Shell(Procs,1) 
Call CenterDialog("Format - 3? Floppy (A:)") 
k = LockWindowUpdate(0) 
End Sub 
' CenterDialog 過程聲明 
Public Sub CenterDialog(WinText As String) 
DoEvents 
On Error Resume Next 
Dim D3 As Long 
D3 = LockWindowUpdate(GetDesktopWindow()) 
Dim wdth% 
Dim hght% 
Dim Scrwdth% 
Dim Scrhght% 
Dim lpDlgRect As RECT 
Dim lpdskrect As RECT 
Dim hTaskBar As Long 
hTaskBar = FindWindow(0&,WinText) 
Call GetWindowRect(hTaskBar, lpDlgRect) 
wdth% = lpDlgRect.Right - lpDlgRect.Left 
hght% = lpDlgRect.Bottom - lpDlgRect.Top 
Call GetWindowRect(GetDesktopWindow(),lpdskrect) 
Scrwdth% = lpdskrect.Right - lpdskrect.Left 
Scrhght% = lpdskrect.Bottom - lpdskrect.Top 
X% = (Scrwdth% - wdth%) / 2 
y% = (Scrhght% - hght%) / 2 
Call SetWindowPos(hTaskBar, 0, X%, y%,0,0, SWP_NOZORDER Or SWP_NOSIZE) 
DoEvents 
End Sub 
程序的執行 
程序輸入完成后,點擊VB“運行”菜單中的“啟動”或“全面編譯”命令,點擊“軟盤格式化”按鈕后選擇要格式化的容量,即可對3.5英寸盤進行格式化操作。 
調用版本信息框 
在Windows程序中,點擊“幫助”菜單中的“關于XXX”選項后,就會彈出該程序的版本信息框。其實,在 
VB中,調用shellAbout函數不但可以實現標準的軟件版本信息框,還可以隨意更改其中的內容呢! 
程序的編寫 
1.與前面類似,首先運行VB并新建一個標準工程,然后雙擊Form1窗口,在代碼輸入框中輸入ShellAbout過 
程代碼: 
Private Declare Function ShellAbout Lib "shell32.dlI" Alias "ShellAboutA" (ByVal hWnd As Long, ByVal szApp As String, ByVal szOtherStuff As String, ByVal hIcon As Long) As Long 
其中ShellAbout聲明如下: 
HWnd設置窗口句柄,szApp設置窗口的“Caption”,szOtherStuff在“版權所有”和“使用權”之間的空白 
處增加額外說明。 
2.然后利用“工具箱”在Form1窗體中加入一個命令按鈕對象,將該命令按鈕屬性中的Caption值定義為“版 
本信息框”。完成之后雙擊該按鈕,在代碼輸入框輸入以下代碼: 
Private Sub Command1_Click() 
Call ShellAbeut(hWnd, "何發武天使工作室!","版本信息框" & VbCrLf & "上帝與你同在!阿彌陀佛!",0) 
End Sub 
程序的執行 
程序輸入完成后,點擊VB“運行”菜單中的“啟動”或“全面編譯”命令,點擊“版本信息框”按鈕,即可查看當前軟件的版本信息。 
查看“屬性” 
在Windows 9X中,增加了一個全新的概念--“屬性”,每個對象都擁有自己的“屬性”,在“屬性”窗口里是關于對象的詳細描述,并且不同的對象“屬性”窗口的說明是不同的。我們可以用ShellExecuteEX函數直接調用“屬性”標準窗口。下面的程序功能相當于用鼠標右鍵單擊根目錄下的“Autoexec.bat”并選擇“屬性”時,彈出的標準“屬性”窗口。 
程序的編寫 
1.首先運行VB,然后新建一個標準工程,然后利用“工具箱”在Form1窗體中加入一個命令按鈕對象,將該命令按鈕屬性中的Caption值定義為“屬性按鈕”。完成之后雙擊該按鈕,在代碼輸入框中輸入以下代碼: 



VB的API編程精粹(2)

 

您的支持我們的動力 rosibo Private Sub Command1_Click() 
Dim r As Long 
Dim FileName As String 
FileName = "c:autoexec.bat" 
r=ShowProperties(FileName,Me.hwnd) 
If r<=32 Then MsgBox "Error! NO c:autoexec.bat File" 
End SuB 
2.然后用鼠標右擊窗體,選擇右鍵菜單中的“添加/添加模塊”選項,然后在出現的選擇框中選擇“模塊”類型,接著在出現的模塊代碼輸入框中加入以下代碼: 
'通用聲明 
Option Explicit 
Type SHELLEXECUTEINFO 
cbSize As long 
Fmask As Long 
hwnd As Long 
lpVerb As String 
lpFile As String 
lpParameters As String 
lpDirectory As String 
nShow As Long 
hInstApp As Long 
lpIDList As Long 
lpClass As String 
hkeyClass As Long 
dwHotKey As Long 
hIcon As Long 
hProcess As Long 
End Type 
Public Const SEE_MASK_INVOKEIDLIST = &HC 
Public Const SESE_MASK_NOCLOSEPROCESS=&H40 
Public Const SEE_MASK_FLAG_NO_UI = &H400 
Declare Function ShellExecuteEX Lib "shell32.dll" Alias "ShellExecuteEx" (SEI As SHELLEXECUTEINFO) As Long 
'ShowProperties過程 
Public Function ShowProperties(FileName As String, OwnerhWnd As Long) As Long 
Dim SEI AS SHELLEXECUTEINFO 
Dim r As Long 
With SEI 
.cbSize = Len(SEI) 
.fMask = SEE_MASK_NOCLOSEPROCESS Or SEE_MASK_INVOKEIDLIST Or SEE_MASK_FLAG_NO_UI 
.hwnd = OwnerhWnd 
.lpVerb = "properties" 
.lpFile = FileName 
.lpParameters = vbNullChar 
.lpDirectory = vbNullChar 
.nShow = 0 
.hInstApp = 0 
.lpIDList = 0 
End With 
r = ShellExecuteEX(SEI) 
ShowProperties = SEI.hInstApp 
End Function 
程序的執行 
程序輸入完成后,點擊VB“運行”菜單中的“啟動”或“全面編譯”命令,點擊“屬性按鈕”按鈕,即可查看C:AUTOEXEC.BAT的屬性。 


在上篇的中我們介紹了API編程的基礎知識和一些比較“酷”的API調用,這期我們將配合專題介紹關于注冊表編程的API函數及其應用實例,使讀者朋友何能夠將前面學到的注冊表知識推廣到VB編程中,繼續向VB高手邁進(路漫漫……)。當然,上期說過要介紹更“酷”的API調用,可不能食言,后半部分介紹的平面工具條的生成定會使您的程序更“炫”! 
一. 注冊表的API編程 
關于注冊表的知識相信您通過前面專題的介紹已經有了較深入的了解。系統有六個預定義好的關鍵字,這六個關鍵字是用戶或系統訪問注冊表的入口點。我們常用到的只有前四個關鍵字。而在編程時我們一般用到只是HKEY_CURRENT_USER和HKEY_LOCAL_MACHINE這兩個關鍵字,因為與應用程序相關的數據存在于這兩個關鍵字下。 
許多商品化的軟件或專業化的軟件在您的機器上首次安裝的時候都會通過改寫注冊表來完成軟件的正確安裝運行,夢想成為編程高手的你當然需要掌握讀寫注冊表這一技術。利用好注冊表會為您的應用程序增色不少。 
雖然VB本身提供了四個關于注冊表的函數GetSetting,SaveSetting、GetAllSettings、DeleteSetting(這四個函數的使用比較簡單讀者可以參考VB的聯機幫助),但是這四個函數只能在“HKEY_CURRENT_USERSoftwareVB and VBA ProgramSettings”下讀取、刪除、修改鍵值。對于一般的應用程序利用它們可以達到您的目的,對于特殊的要求利用它們就顯的無能為力了。下面舉一個例子說明它們的局限性。 
熟悉DOS操作系統的讀者都知道,可以編寫一個“Autoexec.bat”的批處理文件來實現某一個應用程序在系統啟動的時候自動運行,在Win95中我們可以把應用程序的快捷方式放到系統的啟動組中來達到同樣的效果。但是,假如我需要在我的應用程序首次安裝以后就能自動達到這種效果,那該如何呢?其實,注冊表中提供了三個這樣的鍵: 
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun 
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunOnce 
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices 
這三個鍵字的區別是: 
Run:此鍵字下的應用程序在系統啟動的時候會自動運行; 
RunOnce:此鍵字下的應用程序在系統下一次啟動的時候會自動運行,以后不再運行; 
RunServices:功能和“Run”一樣,只是應用程序被啟動的時候不同而已。 
現在您一定知道該如何利用注冊表達到您的要求了。實際上許多安裝軟件在安裝向導完成后要您重新啟動才能完成最終的安裝。它就是把安裝向導所需做的最后工作的程序寫到“RunOnce”下實現的。但是,若只利用VB本身的那四個函數顯然是無法實現此功能的。筆者在實踐中通過調用API函數很好地解決了VB本身訪問注冊表的局限性,并把它做成了一個類模塊。所以調用起來非常方便。由于篇幅有限我只能從中抽取一部分來講,這一部分也是可以獨立運行的。讀者想要完整的源代碼請與我聯系(yue_xiang@263.net)。 
下面是應該放到您的模塊中的聲明部分代碼: 
Option Explicit 
'注冊表的入口常量 
Public Const HKEY_CLASSES_ROOT = &H80000000 
Public Const HKEY_CURRENT_USER = &H80000001 
Public Const HKEY_LOCAL_MACHINE = &H80000002 
Public Const HKEY_USERS = &H80000003 
'注冊表的訪問權限常量 
Public Const KEY_QUERY_VALUE = &H1 
Public Const KEY_SET_VALUE = &H2 
Public Const KEY_CREATE_SUB_KEY = &H4 
Public Const KEY_ENUMERATE_SUB_KEYS = &H8 
Public Const KEY_NOTIFY = &H10 
Public Const KEY_CREATE_LINk = &H20 
Public Const KEY_ALL_ACCESS = &H3F 
'打開/建立鍵值的可選項常量 
Public Const REG_OPTION_NON_VOLATILE = 0& 
Public Const REG_OPTION_VOLATILE = &H1 
'建立新鍵或打開已存在的鍵常量 
Public Const REG_CREATED_NEW_KEY = &H1 
Public Const REG_OPENED_EXISTING_KEY = &H2 
'預先定義的訪問注冊表的權限常量 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
黑人巨大精品欧美黑白配亚洲 | 日韩和欧美一区二区三区| 国产区在线观看成人精品| 精品少妇一区二区三区免费观看| 欧美网站大全在线观看| 日本久久一区二区三区| 在线免费不卡电影| 欧美在线观看一区二区| 欧美浪妇xxxx高跟鞋交| 日韩欧美国产系列| 国产亚洲精品中文字幕| 国产精品福利电影一区二区三区四区| 国产欧美精品一区二区色综合| 国产精品无遮挡| 亚洲丝袜美腿综合| 一区二区三区免费在线观看| 午夜欧美2019年伦理| 蜜桃久久精品一区二区| 成人免费毛片app| 91视频精品在这里| 欧美顶级少妇做爰| 国产视频911| 一区二区三国产精华液| 午夜精品视频在线观看| 国产一区二三区好的| 97久久久精品综合88久久| 欧美军同video69gay| 久久精品欧美一区二区三区麻豆| 综合激情网...| 日韩国产欧美三级| 高清beeg欧美| 欧美xfplay| 亚洲美女淫视频| 久久精工是国产品牌吗| 波多野结衣中文字幕一区 | 欧美午夜电影网| 久久日韩粉嫩一区二区三区| 一区二区三区欧美日韩| 国产美女在线精品| 欧美美女黄视频| 中文字幕久久午夜不卡| 日本成人在线网站| 91色乱码一区二区三区| 精品国产91久久久久久久妲己 | 欧美日韩美少妇| 国产精品丝袜一区| 激情六月婷婷综合| 欧美日韩一级黄| 综合分类小说区另类春色亚洲小说欧美| 免费成人av在线播放| 欧美在线|欧美| 自拍偷拍国产精品| 国产精品小仙女| 日韩一区二区在线播放| 亚洲一区二区三区爽爽爽爽爽 | 亚洲男女毛片无遮挡| 国产伦精品一区二区三区免费迷 | 91久久久免费一区二区| 亚洲国产激情av| 国产成人综合视频| 久久亚洲精精品中文字幕早川悠里| 香港成人在线视频| 欧美日韩成人在线一区| 亚洲成av人片在线| 欧美三片在线视频观看| 一区二区三区精品| 欧美吞精做爰啪啪高潮| 亚洲国产精品天堂| 91国模大尺度私拍在线视频| 亚洲黄色免费电影| 在线亚洲高清视频| 亚洲国产另类av| 制服丝袜亚洲色图| 免费人成黄页网站在线一区二区| 欧美日韩在线综合| 亚洲成在线观看| 欧美肥妇free| 精品在线你懂的| 久久久久国产精品麻豆ai换脸| 狠狠狠色丁香婷婷综合久久五月| 久久伊99综合婷婷久久伊| 国产传媒欧美日韩成人| 综合在线观看色| 欧美日韩一区久久| 美日韩黄色大片| 久久久久国产精品麻豆ai换脸| 国产成人在线视频播放| 亚洲丝袜精品丝袜在线| 欧美色精品天天在线观看视频| 男男gaygay亚洲| 久久亚洲精品国产精品紫薇| 成人精品鲁一区一区二区| 亚洲男人的天堂av| 4438成人网| 成人精品一区二区三区四区 | 欧美猛男超大videosgay| 爽好久久久欧美精品| 精品久久一区二区| 高清不卡一区二区在线| 亚洲第一搞黄网站| 久久毛片高清国产| 色先锋aa成人| 极品少妇xxxx偷拍精品少妇| 国产精品免费视频网站| 欧美日韩国产a| 国产精品一卡二卡| 亚洲综合网站在线观看| 精品少妇一区二区三区在线播放| 本田岬高潮一区二区三区| 亚洲1区2区3区4区| 国产精品久久毛片| 欧美一区二区不卡视频| 91亚洲精品久久久蜜桃网站| 老司机午夜精品99久久| 亚洲狠狠丁香婷婷综合久久久| 欧美精品xxxxbbbb| av亚洲精华国产精华精| 玖玖九九国产精品| 亚洲成av人片一区二区梦乃| 国产欧美一区二区精品婷婷| 9191精品国产综合久久久久久| 丁香婷婷综合激情五月色| 日韩—二三区免费观看av| 亚洲卡通动漫在线| 久久久久久久久久久黄色| 欧美疯狂性受xxxxx喷水图片| 成人激情免费视频| 精品一区二区在线视频| 天天av天天翘天天综合网| 亚洲手机成人高清视频| 中文av一区特黄| 亚洲精品在线观| 欧美一区二区三区免费在线看| 色噜噜夜夜夜综合网| caoporm超碰国产精品| 国产一区二区成人久久免费影院 | 国产精品久久久久久久久免费丝袜| 日韩写真欧美这视频| 欧美日韩久久久一区| 91在线国产福利| caoporn国产精品| jiyouzz国产精品久久| 国产99久久久国产精品免费看 | 国产精品天天摸av网| 久久久久久亚洲综合| 久久亚洲综合色| 国产片一区二区三区| 久久精品这里都是精品| 久久网站最新地址| 久久奇米777| 国产亚洲综合在线| 日本一区二区三区国色天香| 久久久久成人黄色影片| 国产精品人成在线观看免费| 国产日韩欧美在线一区| 中文字幕欧美国产| 国产精品国产三级国产aⅴ中文| 日韩一区中文字幕| 亚洲狠狠丁香婷婷综合久久久| 亚洲一区二区在线观看视频| 五月天一区二区| 老司机免费视频一区二区| 国产一区日韩二区欧美三区| 国产成人丝袜美腿| 色综合一个色综合| 欧美电影影音先锋| 久久久不卡网国产精品二区| 国产精品视频麻豆| 亚洲午夜精品久久久久久久久| 日韩国产高清影视| 国产精品一区二区久久不卡| 9色porny自拍视频一区二区| 欧美午夜在线观看| 日韩欧美黄色影院| 中文字幕中文字幕一区二区| 亚洲一区二区中文在线| 狠狠网亚洲精品| 97久久超碰国产精品| 欧美一区二区三区在线| 国产亚洲va综合人人澡精品| 一区二区激情小说| 久久aⅴ国产欧美74aaa| 99精品视频一区二区| 欧美一级一区二区| 亚洲欧美一区二区在线观看| 人人狠狠综合久久亚洲| av影院午夜一区| 日韩午夜精品视频| 亚洲视频一二区| 韩国一区二区在线观看| 91国在线观看| 久久影院电视剧免费观看| 一二三区精品福利视频| 国产精品456露脸| 在线视频一区二区三| 久久精品视频免费观看| 日韩专区中文字幕一区二区| 成人高清视频在线| 精品成人佐山爱一区二区| 午夜激情一区二区三区|