VB 版 (精华区)

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

             目录
SetKeyboardState 设置每个虚拟键当前在键盘上的状态
SetLocaleInfo 改变用户“地方”设置信息
SetLocalTime 设置当前地方时间
SetSysColors 设置指定窗口显示对象的颜色
SetSystemCursor 改变任何一个标准系统指针
SetSystemTime 设置当前系统时间
SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号
源同步
SetThreadLocale 为当前线程设置地方
SetTimeZoneInformation 设置系统时区信息
ShowCaret 在指定的窗口里显示插入符(光标)
ShowCursor 控制鼠标指针的可视性
SwapMouseButton 决定是否互换鼠标左右键的功能
SystemParametersInfo 获取和设置数量众多的windows系统参数
SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间
ToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符
ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
___________________________________________________________________________
SetKeyboardState
VB声明
Declare Function SetKeyboardState Lib "user32" Alias "SetKeyboardState" (lpp
bKeyState As Byte) As Long
说明
设置每个虚拟键当前在键盘上的状态
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
lppbKeyState Byte,固定为256字符长度的一个字串。windows内部键盘状态表中的每个
字符都会根据这张表中对应的虚拟键设置。每个键的状态与GetKeyboardState函数的结
果是相同的
注解
可用这个函数设置CapsLock, NumLock 和 ScrollLock键的状态
____________________________________________________
SetLocaleInfo
VB声明
Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal 
Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Long
说明
改变用户“地方”设置信息
返回值
Long,TRUE(非零)表示成功,否则返回零。会将GetLastError设置为下述值之一:ER
ROR_INVALID_ACCESS,ERROR_INVALID_FLAGS,ERROR_INVALID_PARAMETER
参数表
参数 类型及说明
Locale Long,要为其改变信息的地方ID
LCType Long,欲改变的信息类型。参考api32.txt,检视那些带 LOCALE_ 前缀的常数
lpLCData String,这个地方信息项目的新设置
注解
这个函数不会改变系统地方设置
_____________________________________________________
SetLocalTime
VB声明
Declare Function SetLocalTime Lib "kernel32" Alias "SetLocalTime" (lpSystemT
ime As SYSTEMTIME) As Long
说明
设置当前地方时间
返回值
Long,TRUE(非零)表示成功,否则返回零。会设置GetLastError
参数表
参数 类型及说明
lpSystemTime SYSTEMTIME,这个结构指定了新的地方时间。该结构中的wDayOfWeek条目
会被忽略
______________________________________________________________
SetSysColors
VB声明
Declare Function SetSysColors Lib "user32" Alias "SetSysColors" (ByVal nChan
ges As Long, lpSysColor As Long, lpColorValues As Long) As Long
说明
设置指定窗口显示对象的颜色
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
nChanges Long,欲改变的对象的数量
lpSysColor Long,按引用传递。这是一个整数数组(总共包含nChanges个元素)的第一
个元素。每个条目都包含了一个常数,指定一个windows显示对象。参考GetSysColor函

lpColorValues Long,按引用传递。这是RGB值数组的第一个元素;该数组用于设置lpS
ysColor数组中的对象颜色
___________________________________________________
SetSystemCursor
VB声明
Declare Function SetSystemCursor Lib "user32" Alias "SetSystemCursor" (ByVal
 hcur As Long, ByVal id As Long) As Long
说明
改变任何一个标准系统指针
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hcur Long,新指针
id Long,以 OCR_ 前缀起头的一个常数,用于指定标准系统指针
注解
不要破坏由hcur指定的指针——在必要的时候,它会由系统自行清除
______________________________________________________
SetSystemTime
VB声明
Declare Function SetSystemTime Lib "kernel32" Alias "SetSystemTime" (lpSyste
mTime As SYSTEMTIME) As Long
说明
设置当前系统时间
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
lpSystemTime SYSTEMTIME,这个结构指定了新的地方时间。其中的wDayOfWeek条目会被
忽略
_______________________________________________________
SetSystemTimeAdjustment
VB声明
Declare Function SetSystemTimeAdjustment Lib "kernel32" Alias "SetSystemTime
Adjustment" (ByVal dwTimeAdjustment As Long, ByVal bTimeAdjustmentDisabled A
s Boolean) As Long
说明
Win32可使内部系统时钟与一个外部的时钟信号源同步,方法是定时添加一个校准值。这
个函数指定的所有时间都以100ns(0.1ms)为单位递增
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
dwTimeAdjustment Long,每次时钟中断时添加到内部系统时钟的时间量
bTimeAdjustmentDisabled Boolean,TRUE用于禁止时间调校
________________________________
SetThreadLocale
VB声明
Declare Function SetThreadLocale Lib "kernel32" Alias "SetThreadLocale" (ByV
al Locale As Long) As Long
说明
为当前线程设置地方
返回值
Long,TRUE(非零)表示成功,否则返回零。会设置GetLastError
参数表
参数 类型及说明
Locale Long,这个线程使用的地方ID
注解
适用平台——Windows NT
_______________________________________
SetTimeZoneInformation
VB声明
Declare Function SetTimeZoneInformation Lib "kernel32" Alias "SetTimeZoneInf
ormation" (lpTimeZoneInformation As TIME_ZONE_INFORMATION) As Long
说明
设置系统时区信息
返回值
Long,TRUE(非零)表示成功,否则返回零。会设置GetLastError
参数表
参数 类型及说明
lpTimeZoneInformation TIME_ZONE_INFORMATION,要在其中设置当前时区信息的一个结

注解
参考GetTimeZoneInformation
__________________________________________________________
ShowCaret
VB声明
Declare Function ShowCaret Lib "user32" Alias "ShowCaret" (ByVal hwnd As Lon
g) As Long
说明
在指定的窗口里显示插入符(光标)
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hwnd Long,包含了插入符的窗口的句柄。可以为零;此时,只有在插入符包含于由活动
任务拥有的一个窗口时,它才会显示出来
注解
参考HideCaret函数
____________________________________________________
ShowCursor
VB声明
Declare Function ShowCursor Lib "user32" Alias "ShowCursor" (ByVal bShow As 
Long) As Long
说明
控制鼠标指针的可视性
返回值
Long,显示计数(参考注解)
参数表
参数 类型及说明
bShow Long,TRUE(非零)显示指针,FALSE隐藏
注解
windows维持着一个内部显示计数;倘若bShow为TRUE,那么每调用一次这个函数,计数
就会递增1;反之,如bShow为FALSE,则计数递减1。只有在这个计数大于或等于0的情况
下,指针才会显示出来
________________________________
SwapMouseButton
VB声明
Declare Function SwapMouseButton Lib "user32" Alias "SwapMouseButton" (ByVal
 bSwap As Long) As Long
说明
决定是否互换鼠标左右键的功能
返回值
Long,TRUE(非零)表示鼠标按钮的功能在调用这个函数之前已经互换;否则返回零
参数表
参数 类型及说明
bSwap Long,倘若为TRUE(非零),则互换两个鼠标按钮的功能。FALSE则恢复正常状态

注解
鼠标是一种共享资源,所以这个函数会对系统中的所有应用程序造成影响
_______________________________________________________________
SystemParametersInfo, SystemParametersInfoByval
VB声明
Declare Function SystemParametersInfo& Lib "user32" Alias "SystemParametersI
nfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal f
uWinIni As Long)
Declare Function SystemParametersInfoByVal& Lib "user32" Alias "SystemParame
tersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As A
ny, ByVal fuWinIni As Long)
说明
允许获取和设置数量众多的windows系统参数
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
uAction Long,指定要设置的参数。参考uAction常数表
uParam Long,参考uAction常数表
lpvParam Any,按引用调用的Integer、Long和数据结构。对于String数据,请用Syste
mParametersInfoByval函数。具体用法参考uAction常数表
fuWinIni Long,取决于不同的参数及操作系统,随同这个函数设置的用户配置参数保存
在win.ini或注册表里,或同时保存在这两个地方。这个参数规定了在设置系统参数的时
候,是否应更新用户设置参数。可以是零(禁止更新),或下述任何一个常数:
SPIF_UPDATEINIFILE 更新win.ini和(或)注册表中的用户配置文件
SPIF_SENDWININICHANGE 倘若也设置了SPIF_UPDATEINIFILE,将一条WM_WININICHANGE消
息发给所有应用程序。否则没有作用。这调消息告诉应用程序已经改变了用户配置设置

注解
在调用这个函数之前,特别要注意将lpvParam参数定义成正确的数据类型
___________________________________________________________________
SystemTimeToTzSpecificLocalTime
VB声明
Declare Function SystemTimeToTzSpecificLocalTime Lib "kernel32" Alias "Syste
mTimeToTzSpecificLocalTime" (lpTimeZoneInformation As TIME_ZONE_INFORMATION,
 lpUniversalTime As SYSTEMTIME, lpLocalTime As SYSTEMTIME) As Long
说明
将系统时间转换成地方时间
返回值
Long,TRUE(非零)表示成功,否则返回零。会设置GetLastError
参数表
参数 类型及说明
lpTimeZoneInformation TIME_ZONE_INFORMATION,包含了时区信息的结构
lpUniversalTime SYSTEMTIME,包含系统时间的结构
lpLocalTime SYSTEMTIME,用于装载地方时间的结构
注解
适用平台:Windows NT
________________________________________________________
ToAscii, ToAsciiEx
VB声明
Declare Function ToAscii& Lib "user32" (ByVal uVirtKey As Long, ByVal uScanC
ode As Long, lpbKeyState As Byte, lpwTransKey As Integer, ByVal fuState As L
ong)
Declare Function ToAsciiEx& Lib "user32" (ByVal uVirtKey As Long, ByVal uSca
nCode As Long, lpKeyState As Byte, lpwTransKey As Integer, ByVal fuState As 
Long, ByVal dwhkl As Long)
说明
根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符
返回值
Long,负值表明按键是“死”的——不能自己将自己转换成一个字符(重音键[accent 
keys]就是一个例子)。在给定当前键盘状态的前提下,如按键不能被转换(翻译),则
返回0。如单个字符已载入lpwTransKey,则返回1。如lpwTransKey里已载入了两个字符
(需要把它分隔到两个字节里),那么返回值是2。在当前字符集里,倘若单独一个字符
不能表达键盘支持的死键或重音按键组合,就可能得到2的返回值
参数表
参数 类型及说明
uVirtKey Long,欲转换的虚拟键
uScanCode Long,键的扫描码。如键处于抬起状态,会设置高位(设为1);如按下,则
清除高位(设为0)
lpbKeyState Byte,描述了键盘状态的一个256字符数组的第一个条目。参考GetKeyboa
rdState函数,了解关于这个数组更多的情况
lpwTransKey Integer,用于装载转换过后的字符的一个整数变量。可用 chr()函数将这
个值转换成一个字串
fuState Long,如一个菜单处于活动状态,则设为1
dwhkl Long,欲用于转换的一个键盘布局的句柄
注解
NumLock键的状态会被忽略,因为虚拟键码包括了哪个信息
在微软的win32手册里,对ToAsciiEx函数的建议是将它的lpwTransKey参数设为Long,而
不要设为Integer。这里的函数声明根据实际的C语言头,它将参数定义成一个16位的字
(既vb的整数)
___________________________________________________________________
ToUnicode
VB声明
Declare Function ToUnicode Lib "user32" Alias "ToUnicode" (ByVal wVirtKey As
 Long, ByVal wScanCode As Long, lpKeyState As Byte, ByVal pwszBuff As String
, ByVal cchBuff As Long, ByVal wFlags As Long) As Long
说明
根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
返回值
Long,值-1表明按键是“死”的——不能自己将自己转换成一个字符(重音键[accent 
keys]就是一个例子)。在给定当前键盘状态的前提下,如按键不能被转换(翻译),则
返回0。如单个字符已载入pwszBuff,则返回1。如pwszBuff里已载入了两个或更多的字
符,那么返回值是2。在当前字符集里,倘若单独一个字符不能表达键盘支持的死键或重
音按键组合,就可能得到2的返回值
参数表
参数 类型及说明
wVirtKey Long,欲转换的虚拟键
wScanCode Long,键的扫描码。如键处于抬起状态,会设置高位;如按下,则清除高位

lpKeyState Byte,描述了键盘状态的一个256字符数组的第一个条目。参考GetKeyboar
dState函数,了解关于这个数组更多的情况
pwszBuff String,用于装载Unicode字符的一个字串缓冲区。注意事先对这个字串进行
正确的初始化
cchBuff Long,pwszBuff字串缓冲区的长度
wFlags Long,如一个菜单处于活动状态,则设为1
注解
适用平台:Windows NT




     又臭,又硬。
           小石头

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