精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VB和Basic>>〓〓.VB电子文档集锦.〓〓>>《老猫:VB声明API》>>VB API:硬件与系统函数 第二页

主题:VB API:硬件与系统函数 第二页
发信人: winsy(鹰派)
整理人: winsy(2003-03-07 16:08:34), 站内信件
GetAsyncKeyState 

VB声明 
Declare Function GetAsyncKeyState Lib "user32" Alias "GetAsyncKeyState" (ByVal 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,以便在两个完全一样的键中区分出左右(也包括Ctrl 和 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 POINTAPI) As Long 
说明 
判断插入符的当前位置 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
lpPoint POINTAPI,这个结构会随同插入符在窗口客户坐标系统中的位置载入;那个窗口是插入符的父窗口 


GetClipCursor 

VB声明 
Declare Function GetClipCursor Lib "user32" Alias "GetClipCursor" (lprc As RECT) 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" (ByVal 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, lpFormat As CURRENCYFMT, ByVal lpCurrencyStr As String, ByVal cchCurrency As Long)
Declare Function GetCurrencyFormatBynum& Lib "kernel32" Alias "GetCurrencyFormatA" (ByVal Locale As Long, ByVal dwFlags As Long, ByVal lpValue As String, ByVal lpFormat As Long, ByVal lpCurrencyStr As String, ByVal cchCurrency As Long) 
说明 
针对指定的“地方”设置,根据货币格式格式化一个数字 
返回值 
Long,格式化过后的字串的长度。零表示出错。会将GetLastError设置为下述值之一:ERROR_INSUFFICIENT_BUFFER,ERROR_INVALID_FLAGS,ERROR_INVALID_PARAMETER 
参数表 
参数 类型及说明 
Locale Long,用于决定格式的地方ID。lpFormat参数中指定的任何信息(倘若不是NULL)都优先于特定于地方的信息 
dwFlags Long,如指定了lpFormat,那么该参数应该为零。否则,可设为LOCALE_NOUSEROVERRIDE,强制使用系统地方参数——即使它们已由用户取代 
lpValue String,指定欲格式化的数字。可以只有数位、一个前缀“-”号以及一个小数点 
lpFormat CURRENCYFMT,可设为NULL,使用特定于不同地方的值(用GetCurrencyFormatBynum,则可通过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参数中指定的任何信息(倘若不是NULL)都优先于特定于地方的信息 
dwFlags Long,如指定了lpFormat,那么该参数应该为零。否则,可设为LOCALE_NOUSEROVERRIDE,强制使用系统地方参数——即使它们已由用户取代。用DATE_SHORTDATE 或 DATE_LONGDATE选择不同的日期格式 
lpDate SYSTEMTIME,包含了一个系统日期的结构 
lpFormat String,可设为NULL,使用特定于不同地方的值(用vbNullString传递一个NULL)。否则包含一个日期格式字串。对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 "GetEnvironmentStringsA" () 
说明 
为包含了当前环境字串设置的一个内存块分配和返回一个句柄。这个内存块包含了所有环境字串。各字串间用一个NULL分隔;连续两个NULL标志着列表的结尾 
返回值 
Long,指向包含了环境字串的一个内存块的地址。零表示失败。会设置GetLastError 
注解 
注意一定要用FreeEnvironmentStrings函数释放这个内存块
 
其他 
请看从vb的api文本查看器复制的声明:Declare Function GetEnvironmentStrings Lib "kernel32" Alias "GetEnvironmentStringsA" () As String,与前面的声明返回值不同 


GetEnvironmentVariable 

VB声明 
Declare Function GetEnvironmentVariable Lib "kernel32" Alias "GetEnvironmentVariableA" (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取代,两者功能完全相同 


[关闭][返回]