VB 版 (精华区)

发信人: bloom (小石头长大了), 信区: VB
标  题: 硬件与系统函数(3)
发信站: 哈工大紫丁香 (2000年07月23日14:04:42 星期天), 转信

                   目录
GetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局
GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
GetKeyboardLayoutName 取得当前活动键盘布局的名称
GetKeyboardState 取得键盘上每个虚拟键当前的状态
GetKeyboardType 了解与正在使用的键盘有关的信息
GetKeyNameText 在给出扫描码的前提下,判断键名
GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态
GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息
GetLocaleInfo 取得与指定“地方”有关的信息
GetLocalTime 取得本地日期和时间
GetNumberFormat 针对指定的“地方”,按特定的格式格式化一个数字
GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
GetSysColor 判断指定windows显示对象的颜色
GetSystemDefaultLangID 取得系统的默认语言ID
GetSystemDefaultLCID 取得当前的默认系统“地方”
_____________________________________________________
GetKeyboardLayout
VB声明
Declare Function GetKeyboardLayout Lib "user32" Alias "GetKeyboardLayout" (B
yVal dwLayout As Long) As Long
说明
取得一个句柄,描述指定应用程序的键盘布局
返回值
Long,键盘布局的句柄
参数表
参数 类型及说明
dwLayout Long,欲检查的线程的标识符
______________________________________________________
GetKeyboardLayoutList
VB声明
Declare Function GetKeyboardLayoutList Lib "user32" Alias "GetKeyboardLayout
List" (ByVal nBuff As Long, lpList As Long) As Long
说明
获得系统适用的所有键盘布局的一个列表
返回值
Long,装载到内存的键盘布局的数量
参数表
参数 类型及说明
nBuff Long,lpList数组中的条目数量。如设为零,表示获取可用键盘布局的数量
lpList Long,指定一个数组,它的元素数量至少应有nBuff规定的元素那么多。这个数
组会随同句柄载入可用的键盘布局
____________________________________________________
GetKeyboardLayoutName
VB声明
Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayout
NameA" (ByVal pwszKLID As String) As Long
说明
取得当前活动键盘布局的名称
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
pwszKLID String,长度为 KL_NAMELENGTH 个字符的字串
注解
在NT中,键盘布局与特定的应用程序有关。而在windows95中,它取决于特定的线程
________________________________________________________________
GetKeyboardState
VB声明
Declare Function GetKeyboardState Lib "user32" Alias "GetKeyboardState" (pbK
eyState As Byte) As Long
说明
取得键盘上每个虚拟键当前的状态
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
pbKeyState Long,总共含256个条目的字节数组中的第一个项目。每个字节都会附带载
入与虚拟键对应的状态。如开关键打开,则位0设为1(开关键包括CapsLock, NumLock
, ScrollLock);如某个键当时按下,则位7为1;如已经抬起,则为0
注解
虚拟键码常数 VK_? 作为数组的索引使用。这个函数相应于取得按键状态于一瞬间的“
快照”——键按下或松开以后,数组不会自动更新。在win32中注意用一个字节数组避免
由于vb向Unicode的内部转换而导致错误
_____________________________________________________
GetKeyboardType
VB声明
Declare Function GetKeyboardType Lib "user32" Alias "GetKeyboardType" (ByVal
 nTypeFlag As Long) As Long
说明
了解与正在使用的键盘有关的信息
返回值
Long,零表示出错。否则返回下述值之一
nTypeFlag=0 1——PC或兼容的83键键盘;2——Olivetti102键键盘;3——AT或兼容84
键键盘;4——增强型(IBM)101或102键键盘;5——Nokia1050键盘;6——Nokia9140
键盘;7——日文键盘
nTypeFlag=1 任何值,由厂商决定
nTypeFlag=2 1——10个功能键(即 F? 键);2——12或18个功能键;3——10个功能键
;4——12个功能键;5——10个功能键;6——24个功能键;7——由厂商决定
参数表
参数 类型及说明
nTypeFlag Long,可设为下述值之一
0——返回键盘类型
1——返回键盘子类型
2——返回键盘上的功能键数量
___________________________________________________
GetKeyNameText
VB声明
Declare Function GetKeyNameText Lib "user32" Alias "GetKeyNameTextA" (ByVal 
lParam As Long, ByVal lpBuffer As String, ByVal nSize As Long) As Long
说明
在给出扫描码的前提下,判断键名
返回值
Long,lpBuffer中载入的键名的实际长度
参数表
参数 类型及说明
lParam Long,位0到5=0;位16到23=按键的扫描码;位24=增强型键盘上的扩展位;位2
5=如设为1,表示忽略左右Shift和Ctrl键的区别
lpBuffer String,字串预先初始化成至少nSize+1字节,以便随同键名载入
nSize Long,字串的最大长度
_____________________________________________
GetKeyState
VB声明
Declare Function GetKeyState Lib "user32" Alias "GetKeyState" (ByVal nVirtKe
y As Long) As Integer
说明
针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态
返回值
Integer,如开关键打开,则位0设为1(开关键包括CapsLock, NumLock,ScrollLock)
;如某个键当时正处于按下状态,则位15为1;如已经抬起,则为0
参数表
参数 类型及说明
nVirtKey Long,欲测试的虚拟键键码。对字母、数字字符(A-Z、a-z、0-9),用它们
实际的ASCII值
________________________________________________
GetLastError
VB声明
Declare Function GetLastError Lib "kernel32" Alias "GetLastError" () As Long

说明
针对之前调用的api函数,用这个函数取得扩展错误信息(在vb里使用:在vb中,用Err
对象的GetLastError属性获取GetLastError的值。这样做是必要的,因为在api调用返回
以及vb调用继续执行期间,vb有时会重设GetLastError的值)
返回值
Long,由api函数决定。请参考api32.txt文件,其中列出了一系列错误常数;都以ERRO
R_前缀起头。常用的错误代码见下表
ERROR_INVALID_HANDLE 无效的句柄作为一个参数传递
ERROR_CALL_NOT_IMPLEMENTED 在win 95下调用专为win nt设计的win32 api函数
ERROR_INVALID_PARAMETER 函数中有个参数不正确
注解
GetLastError返回的值通过在api函数中调用SetLastError或SetLastErrorEx设置。函数
并无必要设置上一次错误信息,所以即使一次GetLastError调用返回的是零值,也不能
担保函数已成功执行。只有在函数调用返回一个错误结果时,这个函数指出的错误结果
才是有效的。通常,只有在函数返回一个错误结果,而且已知函数会设置GetLastError
变量的前提下,才应访问GetLastError;这时能保证获得有效的结果。SetLastError函
数主要在对api函数进行模拟的dll函数中使用,所以对vb应用程序来说是没有意义的
_________________________________________________
GetLocaleInfo
VB声明
Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal 
Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchDat
a As Long) As Long
说明
取得与指定“地方”有关的信息
返回值
Long,装载到缓冲区的字符数,或者cchData要求的缓冲区长度。零表示出错。会将Get
LastError设为下述值之一:ERROR_INSUFFICIENT_BUFFER,ERROR_INVALID_FLAGS,ERR
OR_INVALID_PARAMETER
参数表
参数 类型及说明
Locale Long,欲为其获得信息的地方ID
LCType Long,要取回的信息类型。参考api32.txt文件中带 LOCALE_ 前缀的常数。用O
R运算符合并LOCALE_NOUSEROVERRIDE,从而强制使用系统默认信息——即使当前用户已
修改了相关设置
lpLCData String,指定一个缓冲区,用于装载要求的信息。注意预先将字串格式化成合
适的长度
cchData Long,lpLCData缓冲区的长度;如设为零,表示获取必要的缓冲区长度
______________________________________________________________________
GetLocalTime
VB声明
Declare Sub GetLocalTime Lib "kernel32" Alias "GetLocalTime" (lpSystemTime A
s SYSTEMTIME)
说明
在lpSystemTime结构中装载本地日期和时间
参数表
参数 类型及说明
lpSystemTime SYSTEMTIME,用于装载本地时间的结构
___________________________________________________
GetNumberFormat,GetNumberFormatBynum
VB声明
Declare Function GetNumberFormat& Lib "kernel32" Alias "GetNumberFormatA" (B
yVal Locale As Long, ByVal dwFlags As Long, ByVal lpValue As String, lpForma
t As NUMBERFMT, ByVal lpNumberStr As String, ByVal cchNumber As Long)
Declare Function GetNumberFormatBynum& Lib "kernel32" Alias "GetNumberFormat
A" (ByVal Locale As Long, ByVal dwFlags As Long, ByVal lpValue As String, By
Val lpFormat As Long, ByVal lpNumberStr As String, ByVal cchNumber As Long)
说明
针对指定的“地方”,按特定的格式格式化一个数字
返回值
Long,格式化过后的字串的长度。零表示出错。会将GetLastError设为下述值之一:ER
ROR_INSUFFICIENT_BUFFER,ERROR_INVALID_FLAGS,ERROR_INVALID_PARAMETER
参数表
参数 类型及说明
Locale Long,决定了具体格式的地方ID。lpFormat参数(如果不为NULL)指定的任何信
息都优先于各“地方”不同的特定信息
dwFlags Long,如指定了lpFormat,这个参数应为零。否则,可设为LOCALE_NOUSEROVE
RRIDE,强制使用系统地方参数——无论用户是否已作出相应的修改
lpValue String,欲格式化的数字。数字可以只有数位、加在前面的一个“-”号以及一
个小数点
lpFormat NUMBERFMT,可设为NULL,表示使用本地特有的值(倘若用GetNumberFormatB
ynum,则可将这个参数以ByVal As Long的形式传递)。否则,可引用一个NUMBERFMT结
构,其中的各个字段载入欲使用的格式信息
lpNumberStr String,指定一个缓冲区,用于装载格式化过后的字串。注意先初始化成
合适的长度
cchNumber Long,lpNumberStr缓冲区的长度。如为零,函数会返回缓冲区必要的长度
_____________________________________________________________________________
GetOEMCP
VB声明
Declare Function GetOEMCP Lib "kernel32" Alias "GetOEMCP" () As Long
说明
判断在OEM和ANSI字符集间转换的windows代码页
返回值
Long,目前处于活动状态的OEM代码页的标识符。针对一种特定的语言,可能存在多个代
码页。以下是可用代码页列表
437 默认:美国 708-720 阿拉伯代码页 737 希腊
775 波罗的 850 国际 852 Slavic
855 西里尔语 857 土耳其语 860 葡萄牙语
861 冰岛语 862 希伯来语 863 加拿大法语
864 阿拉伯语 865 挪威/丹麦语 866 俄语
874 泰语 932 日语 936 中文(简体)
949 朝鲜语 950 中文(台、港繁体) 1361 朝鲜语
____________________________________________________
GetQueueStatus
VB声明
Declare Function GetQueueStatus Lib "user32" Alias "GetQueueStatus" (ByVal f
uFlags As Long) As Long
说明
判断应用程序消息队列中待决(等待处理)的消息类型
返回值
Long,高字是一个16位的旗标字,包含了待决的消息。其中的各个位是由为fuFlags参数
定义的同样的常数决定的。低字是一个对应的旗标字。其中各个位指出自上次调用这个
函数以来,或自消息上一次处理以来,新加入的待处理消息
参数表
参数 类型及说明
fuFlags Long,一个标志(旗标)字,指定要检查的消息。标志位是由下述常数定义的

QS_KEY WM_CHAR消息(会造成vb KeyPressed事件)
QS_MOUSE 任何鼠标消息
QS_MOUSEMOVE MouseMove消息或事件
QS_MOUSEBUTTON 鼠标按钮消息或相关事件
QS_PAINT 等待处理的Paint消息
QS_POSTMESSAGE 投递的其他消息
QS_SENDMESSAGE 从另一个应用程序中发出的消息
QS_TIMER 计时器消息
QS_HOTKEY 队列中的一条Hotkey消息
注解
在vb里这个函数不特别有用(Use with VB:Not particularly useful.)
___________________________________________________________________
GetSysColor
VB声明
Declare Function GetSysColor Lib "user32" Alias "GetSysColor" (ByVal nIndex 
As Long) As Long
说明
判断指定windows显示对象的颜色
返回值
Long,指定对象的RGB颜色
参数表
参数 类型及说明
nIndex Long,一个常数,指出特定的windows显示对象,如下表
Windows对象常数表
常数定义 Windows对象 常数定义 Windows对象
COLOR_ACTIVEBORDER 活动窗口的边框 COLOR_ACTIVECAPTION 活动窗口的标题
COLOR_APPWORKSPACE MDI桌面的背景 COLOR_BACKGROUND windows桌面
COLOR_BTNFACE 按钮 COLOR_BTNHIGHLIGHT 按钮的3D加亮区
COLOR_BTNSHADOW 按钮的3D阴影 COLOR_BTNTEXT 按钮文字
COLOR_CAPTIONTEXT 窗口标题中的文字 COLOR_GRAYTEXT 灰色文字;如使用了抖动技术
则为零
COLOR_HIGHLIGHT 选定的项目背景 COLOR_HIGHLIGHTTEXT 选定的项目文字
COLOR_INACTIVEBORDER 不活动窗口的边框 COLOR_INACTIVECAPTION 不活动窗口的标题

COLOR_INACTIVECAPTIONTEXT 不活动窗口的文字 COLOR_MENU 菜单
COLOR_MENUTEXT 菜单正文 COLOR_SCROLLBAR 滚动条
COLOR_WINDOW 窗口背景 COLOR_WINDOWFRAME 窗框
COLOR_WINDOWTEXT 窗口正文 COLOR_3DDKSHADOW 3D深阴影 *
COLOR_3DFACE 3D阴影化对象的正面颜色 * COLOR_3DHILIGHT 3D加亮颜色(win95)
COLOR_3DLIGHT 3D阴影化对象的浅色 * COLOR_INFOBK 工具提示的背景色 *
COLOR_INFOTEXT
 工具提示的文本色 *    
*:带 * 号的常数未获NT 3.51的支持
________________________________________________________________
GetSystemDefaultLangID
VB声明
Declare Function GetSystemDefaultLangID Lib "kernel32" Alias "GetSystemDefau
ltLangID" () As Integer
说明
取得系统的默认语言ID
返回值
Integer,系统的默认语言ID
________________________________________
GetSystemDefaultLCID
VB声明
Declare Function GetSystemDefaultLCID Lib "kernel32" Alias "GetSystemDefault
LCID" () As Long
说明
取得当前的默认系统“地方”
返回值
Long,默认的系统地方ID





     又臭,又硬。
           小石头

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.233.140]
--
※ 修改:·bloom 於 07月23日14:28:22 修改本文·[FROM: 202.118.233.140]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:203.997毫秒