VB 版 (精华区)
发信人: bloom (小石头长大了), 信区: VB
标 题: 硬件与系统函数(5)
发信站: 哈工大紫丁香 (2000年07月23日15:03:34 星期天), 站内信件
目录
IsValidLocale 判断地方标识符是否有效
keybd_event 这个函数模拟了键盘行动
LoadKeyboardLayout 载入一个键盘布局
MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换
MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换
MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的
mouse_event 模拟一次鼠标事件
OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
OemToChar 将OEM字符集的一个字串转换到ANSI字符集
SetCaretBlinkTime 指定插入符(光标)的闪烁频率
SetCaretPos 指定插入符的位置
SetComputerName 设置新的计算机名
SetCursor 将指定的鼠标指针设为当前指针
SetCursorPos 设置指针的位置
SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间
SetEnvironmentVariable 将一个环境变量设为指定的值
______________________________________________________________________
IsValidLocale
VB声明
Declare Function IsValidLocale Lib "KERNEL32" Alias "IsValidLocale" (ByVal L
ocale As Long, ByVal dwFlags As Long) As Long
说明
判断地方标识符是否有效
返回值
Long,根据测试条件,如指定的地方有效,就返回TRUE(非零);否则返回零
参数表
参数 类型及说明
Locale Long,要检查的地方标识符
dwFlags Long,下述常数之一:
LCID_SUPPORTED 检查“地方”是否能由系统支持
LCID_INSTALLED 检查“地方”是否已获支持并安装
____________________________________________________
keybd_event
VB声明
Declare Sub keybd_event Lib "user32" Alias "keybd_event" (ByVal bVk As Byte,
ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
说明
这个函数模拟了键盘行动
参数表
参数 类型及说明
bVk Byte,欲模拟的虚拟键码
bScan Byte,键的OEM扫描码
dwFlags Long,零;或设为下述两个标志之一
KEYEVENTF_EXTENDEDKEY 指出是一个扩展键,而且在前面冠以0xE0代码
KEYEVENTF_KEYUP 模拟松开一个键
dwExtraInfo Long,通常不用的一个值。api函数GetMessageExtraInfo可取得这个值。
允许使用的值取决于特定的驱动程序
注解
这个函数支持屏幕捕获(截图)。在win95和nt4.0下这个函数的行为不同
____________________________________________________________________
LoadKeyboardLayout
VB声明
Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA"
(ByVal pwszKLID As String, ByVal flags As Long) As Long
说明
载入一个键盘布局
返回值
Long,键盘布局的句柄。零表示出错
参数表
参数 类型及说明
pwszKLID String,一个8字符字串,用于描述键盘布局的名称。参考注解
flags Long,下述常数的任何一种组合
KLF_ACTIVATE 载入和激活指定的布局
KLF_NOTELLSHELL 禁止一个外壳挂钩进程(a shell hook procedure)接收到HSHELL_L
ANGUAGE通告。如准备载入一系列键盘布局,就需要考虑设置这个标志,从而改善性能(
不要为最后一个载入的布局设置该标志)
KLF_REORDER 将指定的活动布局移至内部键盘布局列表的起始处
KLF_REPLACELANG 如指定语言的键盘布局已经存在,则用这个将其替换。仅适用于win9
5
KLF_SUBSTITUTE_OK 在注册表中使用替换信息,为这个语言载入一个由用户指定的替换
键盘布局(如果存在的话),而不是载入当前这个布局
KLF_UNLOADPREVIOUS 如KLF_ACTIVATE已经指定并成功,则卸载前一个布局
注解
键盘布局的名称采用“ddddnnnn”的形式。其中,nnnn代表一个语言ID的字串形式,而
dddd代表一个设备代码的字串形式。标准的美国键盘名称是“00000409”
其他
键盘布局在win95中取决于特定的线程;在windows nt中,则在整个系统的范围内有效
__________________________________________________________
MapVirtualKey
VB声明
Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wC
ode As Long, ByVal wMapType As Long) As Long
说明
根据指定的映射类型,执行不同的扫描码和字符转换
返回值
Long,取决于wMapType参数
参数表
参数 类型及说明
wCode Long,欲转换的源字符或扫描码
wMapType Long,控制映射类型,如下所示
0—— wCode是个虚拟键码。函数返回相应的扫描码
1—— wCode是个扫描码。函数返回相应的虚拟键码
2—— wCode是个虚拟键码。函数返回相应的ASCII值(未加Shift组合键)
_______________________________________________________________
MapVirtualKeyEx
VB声明
Declare Function MapVirtualKeyEx Lib "user32" Alias "MapVirtualKeyExA" (ByVa
l uCode As Long, ByVal uMapType As Long, ByVal dwhkl As Long) As Long
说明
根据指定的映射类型,执行不同的扫描码和字符转换
返回值
Long,取决于uMapType参数
参数表
参数 类型及说明
uCode Long,欲转换的源字符或代码
uMapType Long,控制映射类型,如下所示
0—— uCode是个虚拟键码。函数返回相应的扫描码
1—— uCode是个扫描码。函数返回相应的虚拟键码
2—— uCode是个虚拟键码。函数返回相应的ASCII值(未加Shift组合键)。针对死键,
高位设为1。如果出错,返回NULL
dwhkl Long,键盘布局的句柄
注解
利用这个函数,可在扫描码及附加的虚拟键码间转换。这些虚拟键码包括VK_LSHIFT 和
VK_RSHIFT等。这样一来,便可为表面上两个完全一样的键(也包括Ctrl 和 Alt)区分
左键和右键
______________________________________________________________
MessageBeep
VB声明
Declare Function MessageBeep Lib "user32" Alias "MessageBeep" (ByVal wType A
s Long) As Long
说明
播放一个系统声音。系统声音的分配方案是在控制面板里决定的
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
wType Long,下述值之一
0xffffffff 标准响铃
MB_ICONASTERISK 系统星号声(System asterisk sound)
MB_ICONEXCLAMATION 系统惊叹声
MB_ICONHAND 系统指针声(System hand sound)
MB_ICONQUESTION 系统提问声
___________________________________________
mouse_event
VB声明
Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As L
ong, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExt
raInfo As Long)
说明
模拟一次鼠标事件
参数表
参数 类型及说明
dwFlags Long,下述标志的一个组合
MOUSEEVENTF_ABSOLUTE dx和dy指定鼠标坐标系统中的一个绝对位置。在鼠标坐标系统中
,屏幕在水平和垂直方向上均匀分割成65535×65535个单元
MOUSEEVENTF_MOVE 移动鼠标
MOUSEEVENTF_LEFTDOWN 模拟鼠标左键按下
MOUSEEVENTF_LEFTUP 模拟鼠标左键抬起
MOUSEEVENTF_RIGHTDOWN 模拟鼠标右键按下
MOUSEEVENTF_RIGHTUP 模拟鼠标右键按下
MOUSEEVENTF_MIDDLEDOWN 模拟鼠标中键按下
MOUSEEVENTF_MIDDLEUP 模拟鼠标中键按下
dx Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定水平方向的绝对位置或相对
运动
dy Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定垂直方向的绝对位置或相对
运动
cButtons Long,未使用
dwExtraInfo Long,通常未用的一个值。用GetMessageExtraInfo函数可取得这个值。可
用的值取决于特定的驱动程序
注解
进行相对运动的时候,由SystemParametersInfo函数规定的系统鼠标轨迹速度会应用于
鼠标运行的速度
_________________________________________________________
OemKeyScan
VB声明
Declare Function OemKeyScan Lib "user32" Alias "OemKeyScan" (ByVal wOemChar
As Long) As Long
说明
判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
返回值
Long,低字包含了扫描码。高字包含了下述标志:位0标志着Shift已经按下;位1标志着
Ctrl键按下;位2标志着Alt键按下。如两个字都为-1,表明字符未在OEM字符集中得到定
义
参数表
参数 类型及说明
wOemChar Long,欲转换的字符的ASCII值
注解
这个函数只能转换那些单击键就能生成的字符。倘若字符要通过“Alt+3数位”(比如A
lt+255)才能出现,则不能用这个函数转换
原文:This function only translates keys that can be typed with a single key
stroke. Keys that are entered using the ALT + 3 digit entry cannot be conver
ted with this function
___________________________________________
OemToChar, OemToCharBuff
VB声明
Declare Function OemToChar& Lib "user32" Alias "OemToCharA" (ByVal lpszSrc A
s String, ByVal lpszDst As String)
Declare Function OemToCharBuff& Lib "user32" Alias "OemToCharBuffA" (ByVal l
pszSrc As String, ByVal lpszDst As String, ByVal cchDstLength As Long)
说明
将OEM字符集的一个字串转换到ANSI字符集。OemToCharBuff允许我们指定字串中欲转换
的字符数量
返回值
Long,肯定是TRUE
参数表
参数 类型及说明
lpszSrc String,欲转换的字串
lpszDst String,用于容纳ANSI转换结果的一个字串。注意先将字串初始化成合适的长
度。可将相同的字串传递给两个参数,以便在同一个字串中进行转换
cchDstLength Long,字串中要转换的字符数量
注解
如使用一个Win32类型库访问宽字符函数OemToCharW,那么lpszSrc是个Unicode字串,而
且lpszDst参数绝对不能与lpszSrc相同
______________________________________________
SetCaretBlinkTime
VB声明
Declare Function SetCaretBlinkTime Lib "user32" Alias "SetCaretBlinkTime" (B
yVal wMSeconds As Long) As Long
说明
指定插入符(光标)的闪烁频率
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
wMSeconds Long,插入符新的闪烁间隔时间,以毫秒为单位
注解
插入符或插入标志是一种共享资源,所以闪烁时间设定会对所有应用程序的插入符产生
影响。可用GetCaretBlinkTime函数获得最初的闪烁时间设置。以后在适当的时候,可用
这个设置恢复最开始的值。参考CreateCaret函数的注解
____________________________________________________________
SetCaretPos
VB声明
Declare Function SetCaretPos Lib "user32" Alias "SetCaretPos" (ByVal x As Lo
ng, ByVal y As Long) As Long
说明
指定插入符的位置
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
x,y Long,插入符在客户区坐标系统中的X,Y位置
注解
插入符是一种共享资源。在更改插入符的位置之前,程序员应确定插入符位于由当前任
务拥有的一个窗口内。参考CreateCaret函数的注解
___________________________________________________________
SetComputerName
VB声明
Declare Function SetComputerName Lib "kernel32" Alias "SetComputerNameA" (By
Val lpComputerName As String) As Long
说明
设置新的计算机名
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
lpComputerName String,新的计算机名称。最多可有MAX_COMPUTERNAME_LENGTH个字符
注解
windows95会将任何非法字符自动转换到标准的字符集里。windows nt则会报告出错
__________________________________________________________________
SetCursor
VB声明
Declare Function SetCursor Lib "user32" Alias "SetCursor" (ByVal hCursor As
Long) As Long
说明
将指定的鼠标指针设为当前指针
返回值
Long,前一个指针的值
参数表
参数 类型及说明
hCursor Long,要设为当前指针的一个指针的句柄。如设为零,表示不显示任何指针
注解
在vb里这个函数不能很好的工作,因为vb习惯在不同的时间将指针变回原来的样子
_______________________________________________________________________
SetCursorPos
VB声明
Declare Function SetCursorPos Lib "user32" Alias "SetCursorPos" (ByVal x As
Long, ByVal y As Long) As Long
说明
设置指针的位置
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
x,y 鼠标指针在屏幕像素坐标系统中的X,Y位置
__________________________________________________________________
SetDoubleClickTime
VB声明
Declare Function SetDoubleClickTime Lib "user32" Alias "SetDoubleClickTime"
(ByVal wCount As Long) As Long
说明
设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
wCount Long,新的DoubleClick间隔时间,以毫秒为单位
注解
双击时间设定的变化会影响整个系统
____________________________________________
SetEnvironmentVariable
VB声明
Declare Function SetEnvironmentVariable Lib "kernel32" Alias "SetEnvironment
VariableA" (ByVal lpName As String, ByVal lpValue As String) As Long
说明
将一个环境变量设为指定的值
返回值
Long,TRUE(非零)表示成功,否则返回零。会设置GetLastError
参数表
参数 类型及说明
lpName String,欲设置的环境变量的名称。如具有这个名称的一个环境变量尚不存在,
则函数会自动创建它
lpValue String,欲为变量设置的新值。如为NULL,表示清除一个现成值(用vbNullSt
ring常数向这个函数传递一个NULL)
又臭,又硬。
小石头
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.233.140]
--
※ 修改:·bloom 於 07月23日15:15:10 修改本文·[FROM: 202.118.233.140]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.737毫秒