VB 版 (精华区)

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

                目录
ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键
盘上的位置与含义
Beep 用于生成简单的声音
CharToOem 将一个字串从ANSI字符集转换到OEM字符集
ClipCursor 将指针限制到指定区域
ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认
插入符
DestroyCaret 清除(破坏)一个插入符
EnumCalendarInfo 枚举在指定“地方”环境中可用的日历信息
EnumDateFormats 列举指定的“当地”设置中可用的长、短日期格式
EnumSystemCodePages 枚举系统中已安装或支持的代码页
EnumSystemLocales 枚举系统已经安装或提供支持的“地方”设置
EnumTimeFormats 枚举一个指定的地方适用的时间格式
ExitWindowsEx 退出windows,并用特定的选项重新启动
ExpandEnvironmentStrings 扩充环境字串
FreeEnvironmentStrings 翻译指定的环境字串块
GetACP 判断目前正在生效的ANSI代码页
______________________________________________
ActivateKeyboardLayout
VB声明
Declare Function ActivateKeyboardLayout Lib "user32" Alias "ActivateKeyboard
Layout" (ByVal HKL As Long, ByVal flags As Long) As Long
说明
激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义
返回值
Long,如执行成功,返回前一个键盘布局的句柄;零表示失败。会设置GetLastError
参数表
参数 类型及说明
HKL Long,指定一个键盘布局的句柄。这个布局是随同LoadKeyboardLayout 或 GetKey
boardLayoutList函数载入的。也可用HKL_NEXT常数激活下一个已装载布局;或用HKL_P
REV载入前一个布局
flags Long,将指定的键盘移至内部键盘布局列表的起始处
_______________________________________________________
Beep
VB声明
Declare Function Beep Lib "kernel32" Alias "Beep" (ByVal dwFreq As Long, ByV
al dwDuration As Long) As Long
说明
用于生成简单的声音
返回值
Long,TRUE(非零)表示成功,否则返回零。会设置GetLastError
参数表
参数 类型及说明
dwFreq Long,声音频率(从37Hz到32767Hz)。在windows95中忽略
dwDuration Long,声音的持续时间,以毫秒为单位。如为-1,表示一直播放声音,直到
再次调用该函数为止。在windows95中会被忽略
注解
在windows95中,这个函数简单的播放默认系统响铃
________________________________________________________
CharToOem, CharToOemBuff
VB声明
Declare Function CharToOem& Lib "user32" Alias "CharToOemA" (ByVal lpszSrc A
s String, ByVal lpszDst As String)
Declare Function CharToOemBuff& Lib "user32" Alias "CharToOemBuffA" (ByVal l
pszSrc As String, ByVal lpszDst As String, ByVal cchDstLength As Long)
说明
将一个字串从ANSI字符集转换到OEM字符集。CharToOemBuff允许我们指定字串中需转换
的字符数量
返回值
Long,肯定是TRUE
参数表
参数 类型及说明
lpszSrc String,欲转换的字串
lpszDst String,用于包含转换结果的OEM字串。注意事先将字串初始化成合适的长度。
可将相同的字串传递给这两个参数,执行本地转换(即在同一个字串中转换)
cchDstLength Long,在字串lpszSrc中想转换的字符数量
注解
如用一个Win32类型库访问宽字符函数CharToOemW,则lpszSrc是一个Unicode字串,且l
pszDst参数绝对不能与lpszSrc相同
_________________________________________________________
ClipCursor, ClipCursorBynum
VB声明
Declare Function ClipCursor& Lib "user32" (lpRect As RECT)
Declare Function ClipCursorBynum& Lib "user32" Alias "ClipCursor" (ByVal lpR
ect As Long)
说明
将指针限制到指定区域。ClipCursorBynum是一个别名,允许我们清除以前设置的指针剪
切区域
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
lpRect RECT,指定一个矩形,用像素屏幕坐标系统表示。鼠标指针必须在这个区域内运
动。如使用函数的ClipCursorBynum形式,则可将参数设为Long值,用它传递一个0,禁
止指针剪切,恢复常规运作状态
注解
指针剪切后,按Ctrl+Alt+Del可简单的清除剪切区域
______________________________________________________________
ConvertDefaultLocale
VB声明
Declare Function ConvertDefaultLocale Lib "KERNEL32" Alias "ConvertDefaultLo
cale" (ByVal Locale As Long) As Long
说明
将一个特殊的地方标识符转换成真实的地方ID
返回值
Long,如执行成功,返回实际的地方ID。如失败则返回传递给Locale参数的值
参数表
参数 类型及说明
Locale Long,如设为常数LOCALE_SYSTEM_DEFAULT和LOCALE_USER_DEFAULT,可分别接收
默认的系统或用户地方设置。如设为零,则取得语言方面的地方设置。主语言ID用于接
收采用了默认子语言的地方信息
注解
用LOCALE_SYSTEM_DEFAULT和LOCALE_USER_DEFAULT这两个值调用函数时,得到的结果与
GetSystemDefaultLCID 和 GetUserDefaultLCID函数是一样的
_______________________________________________________________
CreateCaret
VB声明
Declare Function CreateCaret Lib "user32" Alias "CreateCaret" (ByVal hwnd As
 Long, ByVal hBitmap As Long, ByVal nWidth As Long, ByVal nHeight As Long) A
s Long
说明
根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符。插入
符可以是一根短线、一个方块或者一幅位图。通常用插入符指示文字在文字框中的插入
位置
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hwnd Long,拥有插入符的那个窗口的句柄
hBitmap Long,用作插入符的一幅位图的句柄。可以是0或1;在这种情况下,插入符可
通过nWidth和nHeight参数创建。如设为1,则新插入符以灰色显示;而不是传统的黑色

nWidth Long,采用逻辑单位的插入符的宽度
nHeight Long,采用逻辑单位的插入符的高度
注解
如创建一个插入符,会同时清除原先的插入符;效果等同于DestroyCaret函数。在vb的
LostFocus事件期间,不要试图用DestroyCaret函数清除一个插入符。这是由于vb的Los
tFocus事件不会接收DestroyCaret直到另一个窗口已经有焦点。因此,倘若在那个时候
调用DestroyCaret,会破坏其他窗口的插入符。如果准备自己管理插入符,可以(而且
应该)在WM_KILLFOCUS消息期间清除插入符
在vb里使用
可以使用。但在应用程序切换时,标准的vb文本控件不能处理GotFocus 和 LostFocus事
件。因此,很难知道何时为一个控件设置插入符。此外,vb假设插入符为一根短竖线,
并据此定义它的位置,所以其他形式的插入符可能无法正确定位
______________________________________________________________
DestroyCaret
VB声明
Declare Function DestroyCaret Lib "user32" Alias "DestroyCaret" () As Long
说明
清除(破坏)一个插入符
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
注解
参考CreateCaret函数的注解

_____________________________________
EnumCalendarInfo
VB声明
Declare Function EnumCalendarInfo Lib "kernel32" Alias "EnumCalendarInfoA" (
ByVal lpCalInfoEnumProc As Long, ByVal Locale As Long, ByVal Calendar As Lon
g, ByVal CalType As Long) As Long
说明
枚举在指定“地方”环境中可用的日历信息
返回值
Long,TRUE(非零)表示成功,零表示失败。会将GetLastError设置设为下述某个常数
:ERROR_BADDB,ERROR_INVALID_FLAGS,ERROR_INVALID_PARAMETER
参数表
参数 类型及说明
lpCalInfoEnumProc Long,指向为每个日历都调用的一个函数的指针。用Addressof运算
符得到位于一个标准模块中的函数的地址
Locale Long,用于决定具体枚举日历的“地方”设置
Calendar Long,如设为常数ENUM_ALL_CALANDARS,表示枚举所有日历;如设为1,枚举
本地罗马日历,2枚举英国罗马日历,3枚举日本日历,4枚举中国日历,5枚举朝鲜日历

CalType Long,CAL_函数之一,指示欲枚举的信息类型
______________________________________________________________
EnumDateFormats
VB声明
Declare Function EnumDateFormats Lib "KERNEL32" Alias "EnumDateFormats" (ByV
al lpDateFmtEnumProc As Long, ByVal Locale As Long, ByVal dwFlags As Long) A
s Long
说明
列举指定的“当地”设置中可用的长、短日期格式
返回值
Long,TRUE(非零)表示成功,零表示失败。会将GetLastError设置设为下述某个常数
:ERROR_BADDB,ERROR_INVALID_FLAGS,ERROR_INVALID_PARAMETER
参数表
参数 类型及说明
lpDateFmtEnumProc Long,指向为每种日期格式都调用的一个函数的指针。用Addresso
f运算符得到位于一个标准模块中的函数的地址
Locale Long,用于决定具体枚举格式的“地方”的设置
dwFlags Long,DATE_SHORTDATE 或 DATE_LONGDATE常数之一,分别用于枚举短或长日期
格式
_______________________________________________________________________
EnumSystemCodePages
VB声明
Declare Function EnumSystemCodePages Lib "KERNEL32" Alias "EnumSystemCodePag
es" (ByVal lpCodePageEnumProc As Long, ByVal dwFlags As Long) As Long
说明
枚举系统中已安装或支持的代码页
返回值
Long,TRUE(非零)表示成功,零表示失败。会将GetLastError设置设为下述某个常数
:ERROR_BADDB,ERROR_INVALID_FLAGS,ERROR_INVALID_PARAMETER
参数表
参数 类型及说明
lpCodePageEnumProc Long,指向为每个代码页都调用的一个函数的指针。用Addressof
运算符得到位于一个标准模块中的函数的地址
dwFlags Long,常数CP_INSTALLED表示枚举已安装的所有代码页,CP_SUPPORTED表示枚
举所有支持的代码页
_______________________________________________________________
EnumSystemLocales
VB声明
Declare Function EnumSystemLocales Lib "KERNEL32" Alias "EnumSystemLocales" 
(ByVal lpLocaleEnumProc As Long, ByVal dwFlags As Long) As Long
说明
枚举系统已经安装或提供支持的“地方”设置
返回值
Long,TRUE(非零)表示成功,零表示失败。会将GetLastError设置设为下述某个常数
:ERROR_BADDB,ERROR_INVALID_FLAGS,ERROR_INVALID_PARAMETER
参数表
参数 类型及说明
lpLocaleEnumProc Long,指向为每个“地方”都调用的一个函数的指针。用Addressof
运算符得到位于一个标准模块中的函数的地址
dwFlags Long,常数LCID_INSTALLED表示枚举已安装的所有地方;LCID_SUPPORTED则枚
举所有支持的地方
_______________________________________________________________
EnumTimeFormats
VB声明
Declare Function EnumTimeFormats Lib "KERNEL32" Alias "EnumTimeFormats" (ByV
al lpTimeFmtEnumProc As Long, ByVal Locale As Long, ByVal dwFlags As Long) A
s Long
说明
枚举一个指定的地方适用的时间格式
返回值
Long,TRUE(非零)表示成功,零表示失败。会将GetLastError设置设为下述某个常数
:ERROR_BADDB,ERROR_INVALID_FLAGS,ERROR_INVALID_PARAMETER
参数表
参数 类型及说明
lpTimeFmtEnumProc Long,指向为每种时间格式都调用的一个函数的指针。用Addresso
f运算符得到位于一个标准模块中的函数的地址
Locale Long,用于决定具体枚举格式的“地方”设置
dwFlags Long,未用,设为零
__________________________________________________________
ExitWindowsEx
VB声明
Declare Function ExitWindowsEx Lib "user32" Alias "ExitWindowsEx" (ByVal uFl
ags As Long, ByVal dwReserved As Long) As Long
说明
退出windows,并用特定的选项重新启动
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
uFlags Long,指定下述一个或多个标志(用OR运算符合并到一起)
EWX_FORCE 强迫中止没有响应的进程
EWX_LOGOFF 中止进程,然后注销
EWX_SHUTDOWN 关掉系统电源(如果可能的话,ATX电源就可以)
EWX_REBOOT 重新引导系统
EWX_SHUTDOWN 关闭系统
dwReserved Long,保留,设为零
注解
这个函数调用后会立刻返回,系统关闭过程是在后台进行的。注意先中止自己的应用程
序,使关闭过程更显平顺。当然,您的进程必须有足够的优先权,否则也不能执行这种
操作
_______________________________________________________________________
ExpandEnvironmentStrings
VB声明
Declare Function ExpandEnvironmentStrings Lib "kernel32" Alias "ExpandEnviro
nmentStringsA" (ByVal lpSrc As String, ByVal lpDst As String, ByVal nSize As
 Long) As Long
说明
扩充环境字串。具体操作过程与命令行处理的所为差不多。也就是说,将由百分号封闭
起来的环境变量名转换成那个变量的内容。比如,“%path%”会扩充成完整路径。在vb
里经常用于为新进程创建一个环境块
返回值
Long,lpDst要求的缓冲区的大小。如nSize小于这个数字(也就是说,缓冲区太小,以
至不能全容下扩充过后的字串),那么lpDst不会被载入。可利用这个结果改变字串的大
小。零表示遇到错误。会设置GetLastError
参数表
参数 类型及说明
lpSrc String,欲扩充的字串
lpDst String,扩充过后的字串
nSize Long,lpDst的长度。注意预先对lpDst进行初始化,使其与这个长度相符
示例
Dim s$, dl&
Dim y As String * 5
s$ = "%PATH%"
dl& = ExpandEnvironmentStrings(s$, y, 499)
Print y
______________________________________________________________
FreeEnvironmentStrings
VB声明
Declare Function FreeEnvironmentStrings& Lib "kernel32" Alias "FreeEnvironme
ntStringsA" (ByVal lpsz As Long)
说明
翻译指定的环境字串块
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
lpsz Long,指向一个内存块的句柄;那个内存块是以前通过GetEnvironmentStrings函
数获得的
注解
开头的声明来自于我的资料,而在vb自带的api文本查看器中的声明为:Declare Funct
ion FreeEnvironmentStrings Lib "kernel32" Alias "FreeEnvironmentStringsA" (B
yVal lpsz As String) As Long,lpsz的类型为String,不知是谁的错了
___________________________________________________________________
GetACP
VB声明
Declare Function GetACP Lib "kernel32" Alias "GetACP" () As Long
说明
判断目前正在生效的ANSI代码页
返回值
Long,目前活动ANSI代码页的标识符。针对一种特定的语言,可能存在多个这样的代码
页。可能的代码页包括下面这些:
874 泰语 932 日语
936 中文(简体) 949 朝鲜语
950 中文(台湾和香港繁体) 1200 Unicode
1250 东欧语言 1251 西里尔语
1252 美国和西欧语言 1253 希腊语
1254 土耳其语 1255 希伯来语
1256 阿拉伯语 1257 波罗的语
注解
不要混淆ANSI代码页与OEM代码页的概念!ANSI代码页为不同版本的windows定义标准的
ANSI 8位字符集。而OEM代码页指定基础DOS代码页,由系统及键盘使用





     又臭,又硬。
           小石头

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