VB.net 2010 视频教程 VB.net 2010 视频教程 VB.net 2010 视频教程
当前位置:
主页 > 编程开发 > vb >
  • vb教程之VB中调用Windows API函数检测当前系统环境

  • 2017-09-22 13:15 来源:未知
杨洪勇

(山东农业大学)


摘要 本文介绍了在Visual Basic中用 Declare语句声明所要调用的Windows API的方法,以及如何调用API函数来检测当前的系统环境。用Visual Basic能够直接控制和处理计算机的系统参数和硬件资源,增加了程序设计人员在Windows环境中开发软件的灵活性,使软件与Windows系统达到了最完美的结合。本文最后给出了一个调用的Windows API的检测系统环境实例。
关键字 Visual Basic Declare 语句 Windows API函数 系统

前言
Visual Basic是一个Windows系统下的应用程序开发平台。方便的界面设计、强大的扩充能力使程序员能节省大量时间,把主要精力集中在应用程序核心代码的编写上。Visual Basic目前已成为Windows系统下一种高效灵活的开发工具,而调用API(Application Program Interface,应用程序接口)函数正是对Visual Basic功能的强有力扩充,它使得Visual Basic能够直接控制和处理计算机的系统参数和硬件资源。借助于API使得Visual Basic能克服Windows编程的难点,同时又增加供了使用Windows环境的灵活性。
利用Visual Basic调用API函数的方法:
(1)用Declare语句声明所要调用的API函数,若该函数无返回值,可声明为Sub过程;若有返回值,则可声明为Function函数。
(2)一旦声明了某一个API函数后,就可以象调用Visual Basic的函数一样。但如果参数传递不对,可能会导致死机。

一、检测系统参数的API函数
检测系统环境的参数所需要的Windows API函数有GetWindowsDirectory,GetWinFlags,GetVersion,GetKeyboardType等,具体的使用方法见下面声明。
1.GetWinflags声明
Declare Function GetWinflags Lib "kernel32" () As Long
功能:该函数返回Windows运行系统上的系统配置。

返回标志值
含意
WF_80X87
Intel数字协处理器
WF_CPU386
80386 CPU
WF_CPU486
80486 CPU
WF_ENHANCED
Windows 系统运行在386增强模式
WF_PMODE
Windows 系统运行在?;つJ?/span>
WF_STANDARD
Windows 系统运行在标准模式
WF_WLO
运行在OS/2下

2.GetKeyboardType声明
Declare Function GetKeyboardType Lib "user32" (ByVal nTypeFlag As Long) As Long 
功能:该函数得到系统键盘类型,nTypeFlag=0时返回键盘类型。

返回值
含意
1
IBM PC/XT 或兼容键盘
2
Olivetti "ICO" 键盘(102个键)
3
IBM 或兼容键盘(84个键)
4
IBM 增强型或相似键盘(101或102个键)
5
Nokia1050或相似键盘
6
Nokia9140或相似键盘
7
日本键盘

3.GetWindowsDirectory声明
Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long 
功能:该函数获取Windows目录的路径。  

4.GetVersion声明
Declare Function GetVersion Lib "kernel32" () As Long 
功能:该函数返回当前Windows版本号和DOS版本号。返回值的低位字节说明Windows主版本号,返回值的低位字的高位字节说明Windows副版本号,高位字的低位字节说明DOS副版本号,高位字的高位字节说明DOS主版本号。

5.GetSystemDirectory声明
Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA"
(ByVal lpBuffer As String, ByVal nSize As Long) As Long 
功能:该函数获取Windows系统子目录的路径。

二、检测系统参数程序实例
有了上面对所需Windows API函数的声明以后,就可以使用这些API函数,编写下面的用户自定义函数。
1.检测系统子目录函数
Function WinDir()
Temp = Space$(255)
StringLen = GetWindowsDirectory(Temp, 255)
WinDir = Left$(Temp, StringLen)
End Function

2.检测系统键盘函数
Function KeyType()
KbType = GetKeyboardType(0)
Select Case KbType
Case 1
KeyType="IBM PC\XT,or compatible"
Case 2
KeyType="Olivetti 'ICO'(102key)"
Case 3
KeyType="IBM AT/similar(84keys)"
Case 4
KeyType = "IBM Enhance(101/102 keys)"
Case 5
KeyType = "Nokia1050/similar"
Case 6
KeyType = "Nokia9140/similar"
Case 7
KeyType = "Japan Keyboard"
End Select
End Function

3.检测Windows版本号函数
Function WinVer()
ver& = GetVersion()
winhigh = ver& Mod 256
winlow = Int(ver& / 256) Mod 256
WinVer = ((winhigh * 100) + winlow) / 100
End Function

4.检测系统CPU函数
Function CPU()
Flags&=GetWinFlags()
Match=1
Select Case Match 
Case (Flags& And &H8)\&H8
CPU=486
Case (Flags& And &H4)\&H4
CPU=386
End Select 
End Function 

5.检测Windows运行模式函数
Function Mode()
Flags&=GetWinFlags()
If flags& And &H20 Then 
Mode="Enhanced"
Else
Mode="Standard"
End If 
End Function
(二) 建 立 窗 体 文 件Form1.frm
Form1.Caption="System Information"
Sub Form_Load()
Cls
Print
Print , "System Information"
Print
Print , "WindowsDir: ", WinDir()
Print , "KeyboardType: ", KeyType()
Print , "WindowsVersion: ", WinVer()
Print , "SystemCpu: ", CPU()
Print , "WindowsMode: ", Mode()
End Sub

在Visual Basic中用 Declare语句声明所要调用的Windows API函数, 使得程序设计者在Visual Basic中能够直接控制和处理计算机的系统参数和硬件资源,增加了程序设计者在Windows环境中开发软件的灵活性,使软件与Windows系统达到了最完美的结合。
相关教程
  • 互联网资产管理须持牌经营 2018-12-09
  • 新闻中心给记者留下美好记忆 2018-12-09
  • 险企偿付能力2017年“成绩单”:3家不达标 7家被关注 2018-12-07
  • 【学习时刻】清华大学周绍杰:坚定不移地贯彻落实新发展理念 2018-12-07
  • 建立市场经济,原本的计划经济哪里去?坚持集体的南街村没有到户就没有建立市场经济,是不是还在搞计划经济?看其实现公有资本在其所有者们进行分配应是计划经济。 2018-10-30
  • 市场经济就是一种唯利是图的经济,是一种波动、走极端的经济,新时期的发展方式与结果就是如 此。那么指望市场经济来解决需要与不平衡的矛盾,对症下药了吗? 2018-10-30
  • 比利时30大胜巴拿马 卢卡库梅开二度 强队总算没有都凉凉 2018-10-18
  • 新科欧洲状元 五盾军团能否延续法兰西之夏荣耀 2018-10-18
  • 河北一保时捷车主疑遭枪击 警方悬赏9万元通缉 2018-09-26
  • 【十九大·理论新视野】动漫:“社会主义现代化强国”如何建成 2018-09-26
  • 林海起诉海底捞侵权 对方回应:已停止播放其音乐作品 2018-06-23
  • 新疆伊犁:薰衣草香飘万里 “紫色经济”成产业 2018-06-23
  • 《与书行》第一集先导片丨李小白:阅读让时尚圈回归平静 2018-06-23
  • 太原:幸福是奋斗出来的--山西频道--人民网 2018-06-23
  • 180| 784| 273| 347| 968| 887| 799| 367| 806| 889| 119| 762| 312| 381| 776|