VB 版 (精华区)

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

               目录
GetAsyncKeyState 判断函数调用时指定虚拟键的状态
GetCaretBlinkTime 判断插入符光标的闪烁频率
GetCaretPos 判断插入符的当前位置
GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域
GetCommandLine 获得指向当前命令行缓冲区的一个指针
GetComputerName 取得这台计算机的名称
GetCPInfo 取得与指定代码页有关的信息
GetCurrencyFormat 针对指定的“地方”设置,根据货币格式格式化一个数字
GetCursor 获取目前选择的鼠标指针的句柄
GetCursorPos 获取鼠标指针的当前位置
GetDateFormat 针对指定的“当地”格式,对一个系统日期进行格式化
GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄
GetEnvironmentVariable 取得一个环境变量的值
GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件
GetKBCodePage 由GetOEMCP取代,两者功能完全相同
____________________________________________________
GetAsyncKeyState
VB声明
Declare Function GetAsyncKeyState Lib "user32" Alias "GetAsyncKeyState" (ByV
al vKey As Long) As Integer
说明
判断函数调用时指定虚拟键的状态
返回值
Long,自对GetAsyncKeyState函数的上一次调用以来,如键已被按过,则位0设为1;否
则设为0。如键目前处于按下状态,则位15设为1;如抬起,则为0。微软的win32手册指
出:倘若输入焦点从属于与调用函数的输入线程不同的另一个输入线程,则返回值为0(
例如,一旦另一个程序拥有焦点,则它应返回零)。证据显示,函数实际是在整个系统
的范围内工作的
参数表
参数 类型及说明
vKey Long,欲测试的虚拟键的键码
注解
如指定了VK_LBUTTON 或 VK_RBUTTON,按钮的状态就会根据实际的按钮报告——无论是
否曾用SwapMouseButton函数对鼠标的位置进行了交换。win32提供了额外的一些虚拟键
码,比如VK_LSHIFT 和 VK_RSHIFT,以便在两个完全一样的键中区分出左右(也包括Ct
rl 和 Alt)
________________________________________________
GetCaretBlinkTime
VB声明
Declare Function GetCaretBlinkTime Lib "user32" Alias "GetCaretBlinkTime" ()
 As Long
说明
判断插入符光标的闪烁频率
返回值
Long,插入符连续两次闪烁间隔的时间,以毫秒为单位。零表示函数调用失败。会设置
GetLastError
_______________________________________________________________
GetCaretPos
VB声明
Declare Function GetCaretPos Lib "user32" Alias "GetCaretPos" (lpPoint As PO
INTAPI) As Long
说明
判断插入符的当前位置
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
lpPoint POINTAPI,这个结构会随同插入符在窗口客户坐标系统中的位置载入;那个窗
口是插入符的父窗口
_____________________________________________________
GetClipCursor
VB声明
Declare Function GetClipCursor Lib "user32" Alias "GetClipCursor" (lprc As R
ECT) As Long
说明
取得一个矩形,用于描述目前为鼠标指针规定的剪切区域;该区域是由SetClipCursor函
数定义的
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
lprc RECT,在屏幕坐标系统中随同当前剪切矩形载入的一个矩形。倘若没有活动的剪切
,这个矩形会反映出整个显示屏幕的大小
________________________________________________
GetCommandLine
VB声明
Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" () As
 String
说明
获得指向当前命令行缓冲区的一个指针
返回值
Long,命令行缓冲区在内存中的地址
注解
Visual Basic Command函数更易获取参数,但它未提供可执行的名称。使用这个函数时
,要求进行内存复制操作
___________________________________________________________________
GetComputerName
VB声明
Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (By
Val lpBuffer As String, nSize As Long) As Long
说明
取得这台计算机的名称
返回值
Long,TRUE(非零)表示成功,否则返回零。会设置GetLastError
参数表
参数 类型及说明
lpBuffer String,随同计算机名载入的字串缓冲区
nSize Long,缓冲区的长度。这个变量随同返回计算机名的实际长度载入
注解
注意nSize参数并不是按值传递的。参考api32.txt,了解MAX_COMPUTER_NAME常数的值
示例
Dim s$
s$ = String$(MAX_COMPUTERNAME_LENGTH+1,0)
Dim dl&
Dim sz&
sz& = MAX_COMPUTERNAME_LENGTH+1
dl& = GetComputerName(s$, sz)
其他
也许你会发现,MAX_COMPUTERNAME_LENGTH常数在vb自带的api文本查看器中找不到。的
确,我也没有找到。但我有一个工具:Listapi,这个常数在它那里可以找到
____________________________________________________________________
GetCPInfo
VB声明
Declare Function GetCPInfo Lib "kernel32" Alias "GetCPInfo" (ByVal CodePage 
As Long, lpCPInfo As CPINFO) As Long
说明
取得与指定代码页有关的信息
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
CodePage Long,欲为其载入信息的代码页的标识符。可能是一个ANSI或OEM代码页
lpCPInfo CPINFO,用于容纳代码页信息的一个结构
_______________________________________________________________
GetCurrencyFormat, GetCurrencyFormatBynum
VB声明
Declare Function GetCurrencyFormat& Lib "kernel32" Alias "GetCurrencyFormatA
" (ByVal Locale As Long, ByVal dwFlags As Long, ByVal lpValue As String, lpF
ormat As CURRENCYFMT, ByVal lpCurrencyStr As String, ByVal cchCurrency As Lo
ng)
Declare Function GetCurrencyFormatBynum& Lib "kernel32" Alias "GetCurrencyFo
rmatA" (ByVal Locale As Long, ByVal dwFlags As Long, ByVal lpValue As String
, ByVal lpFormat As Long, ByVal lpCurrencyStr As String, ByVal cchCurrency A
s Long)
说明
针对指定的“地方”设置,根据货币格式格式化一个数字
返回值
Long,格式化过后的字串的长度。零表示出错。会将GetLastError设置为下述值之一:
ERROR_INSUFFICIENT_BUFFER,ERROR_INVALID_FLAGS,ERROR_INVALID_PARAMETER
参数表
参数 类型及说明
Locale Long,用于决定格式的地方ID。lpFormat参数中指定的任何信息(倘若不是NUL
L)都优先于特定于地方的信息
dwFlags Long,如指定了lpFormat,那么该参数应该为零。否则,可设为LOCALE_NOUSE
ROVERRIDE,强制使用系统地方参数——即使它们已由用户取代
lpValue String,指定欲格式化的数字。可以只有数位、一个前缀“-”号以及一个小数

lpFormat CURRENCYFMT,可设为NULL,使用特定于不同地方的值(用GetCurrencyForma
tBynum,则可通过ByVal As Long形式传递这个参数)。否则,可引用一个CURRENCYFMT
结构,其中包含所有必要的字段,可填入需要用到的信息
lpCurrencyStr String,指定一个缓冲区,用于容纳格式化过后的字串。注意事先对字
串进行初始化
cchCurrency Long,lpCurrencyStr缓冲区的长度。如为零,表示函数会返回需要缓冲区
的大小
注解
在vb里,如使用一个别名,其中的lpFormat设为NULL,则可以正常使用。CURRENCYFMT结
构的正确预初始化非常具有挑战性
________________________________________________________________________
GetCursor
VB声明
Declare Function GetCursor Lib "user32" Alias "GetCursor" () As Long
说明
获取目前选择的鼠标指针的句柄
返回值
Long,目前使用的指针的句柄。倘若不存在指针,则返回零
注解
这个函数返回的是当前线程的指针——不能获取其他应用程序的指针

______________________________________________
GetCursorPos
VB声明
Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As 
POINTAPI) As Long
说明
获取鼠标指针的当前位置
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
lpPoint POINTAPI,随同指针在屏幕像素坐标中的位置载入的一个结构
________________________________________________________________
GetDateFormat
VB声明
Declare Function GetDateFormat Lib "kernel32" Alias "GetDateFormatA" (ByVal 
Locale As Long, ByVal dwFlags As Long, lpDate As SYSTEMTIME, ByVal lpFormat 
As String, ByVal lpDateStr As String, ByVal cchDate As Long) As Long
说明
针对指定的“当地”格式,对一个系统日期进行格式化
返回值
Long,格式化过后的字串的长度。零表示出错,会将GetLastError设置为下述值之一:
ERROR_INSUFFICIENT_BUFFER,ERROR_INVALID_FLAGS,ERROR_INVALID_PARAMETER
参数表
参数 类型及说明
Locale Long,用于决定格式的地方ID。lpFormat参数中指定的任何信息(倘若不是NUL
L)都优先于特定于地方的信息
dwFlags Long,如指定了lpFormat,那么该参数应该为零。否则,可设为LOCALE_NOUSE
ROVERRIDE,强制使用系统地方参数——即使它们已由用户取代。用DATE_SHORTDATE 或
 DATE_LONGDATE选择不同的日期格式
lpDate SYSTEMTIME,包含了一个系统日期的结构
lpFormat String,可设为NULL,使用特定于不同地方的值(用vbNullString传递一个N
ULL)。否则包含一个日期格式字串。对d,dd,ddd,dddd,m,mm,mmm,mmmm,y,yy,yyyy这样
的代码,它们的用法与在vb格式命令中的用法是相同的。注意用gg指定一个“纪元”
lpDateStr String,指定一个缓冲区,用于容纳格式化过后的字串。注意事先对字串进
行初始化
cchDate Long,lpDateStr缓冲区的长度。如为零,表示函数会返回需要缓冲区的大小
________________________________________________________________________
GetDoubleClickTime
VB声明
Declare Function GetDoubleClickTime Lib "user32" Alias "GetDoubleClickTime" 
() As Long
说明
判断连续两次鼠标单击之间会被处理成双击事件的间隔时间
返回值
Long,以毫秒表示的双击时间
___________________________________________________
GetEnvironmentStrings
VB声明
Declare Function GetEnvironmentStrings& Lib "kernel32" Alias "GetEnvironment
StringsA" ()
说明
为包含了当前环境字串设置的一个内存块分配和返回一个句柄。这个内存块包含了所有
环境字串。各字串间用一个NULL分隔;连续两个NULL标志着列表的结尾
返回值
Long,指向包含了环境字串的一个内存块的地址。零表示失败。会设置GetLastError
注解
注意一定要用FreeEnvironmentStrings函数释放这个内存块
其他
请看从vb的api文本查看器复制的声明:Declare Function GetEnvironmentStrings Li
b "kernel32" Alias "GetEnvironmentStringsA" () As String,与前面的声明返回值
不同
_________________________________________________________________
GetEnvironmentVariable
VB声明
Declare Function GetEnvironmentVariable Lib "kernel32" Alias "GetEnvironment
VariableA" (ByVal lpName As String, ByVal lpBuffer As String, ByVal nSize As
 Long) As Long
说明
取得一个环境变量的值
返回值
Long,载入的环境变量的长度。如指定的环境字串不存在,就返回零。如lpBuffer的长
度不足以全部容下字串,则返回字串的全长。随后可用这个长度分配一个足够大的缓冲

参数表
参数 类型及说明
lpName String,欲读入的环境字串的名称
lpBuffer String,随同字串装载的一个缓冲区。注意预先将其初始化到合适的长度
nSize Long,lpBuffer的长度
_______________________________________________
GetInputState
VB声明
Declare Function GetInputState Lib "user32" Alias "GetInputState" () As Long
说明
判断是否存在任何待决(等待处理)的鼠标或键盘事件
返回值
Long,非零表示成功,零表示失败
注解
在win32下,这个函数只返回当前输入线程的状态

__________________________________________________
GetKBCodePage
VB声明
Declare Function GetKBCodePage Lib "user32" Alias "GetKBCodePage" () As Long
说明
由GetOEMCP取代,两者功能完全相同






     又臭,又硬。
           小石头

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