发信人: winsy(鹰派)
整理人: winsy(2003-03-10 08:46:21), 站内信件
|
GetSystemInfo
VB声明
Declare Sub GetSystemInfo Lib "kernel32" Alias "GetSystemInfo" (lpSystemInfo As SYSTEM_INFO)
说明
在一个SYSTEM_INFO结构中载入与底层硬件平台有关的信息
参数表
参数 类型及说明
lpSystemInfo SYSTEM_INFO,指定一个结构,用于装载适当的系统信息
GetSystemMetrics
VB声明
Declare Function GetSystemMetrics Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long
说明
返回与windows环境有关的信息
返回值
Long,取决于具体的常数索引
参数表
参数 类型及说明
nIndex Long,常数,指定欲获取的信息;如下表所示
nIndex常数设置
常数定义 取得信息
SM_ARRANGE 设置windows如何排列最小化窗口的一个标志。参考api32.txt中的ARW常数
SM_CLEANBOOT 指定启动模式。0=普通模式;1=带网络支持的安全模式
SM_CMETRICS 可用系统环境的数量
SM_CMOUSEBUTTON 鼠标按钮(按键)的数量。如没有鼠标,就为零
SM_CXBORDER, SM_CYBORDER 尺寸不可变边框的大小
SM_CXCURSOR, SM_CYCURSOR 标准指针大小
SM_CXDLGFRAME, SM_CYDLGFRAME 对话框边框的大小
SM_CXDOUBLECLK, SM_CYDOUBLECLK 双击区域的大小(参考注解)
SM_CXFRAME, SM_CYFRAME 尺寸可变边框的大小(在win95和nt 4.0中使用SM_C?FIXEDFRAME)
SM_CXFULLSCREEN, SM_CYFULLSCREEN 最大化窗口客户区的大小
SM_CXHSCROLL, SM_CYHSCROLL 水平滚动条上的箭头大小
SM_CXHTHUMB, SM_CYHTHUMB 滚动块在水平滚动条上的大小
SM_CXICON, SM_CYICON 标准图标的大小
SM_CXICONSPACING, SM_CYICONSPACING 桌面图标之间的间隔距离。在win95和nt 4.0中是指大图标的间距
SM_CXMAXIMIZED, SM_CYMAXIMIZED 最大化窗口的默认尺寸
SM_CXMAXTRACK, SM_CYMAXTRACK 改变窗口大小时,最大的轨迹宽度
SM_CXMENUCHECK, SM_CYMENUCHECK 菜单复选号位图的大小
SM_CXMENUSIZE, SM_CYMENUSIZE 菜单栏上的按钮大小
SM_CXMIN, SM_CYMIN 窗口的最小尺寸
SM_CXMINIMIZED, SM_CYMINIMIZED 最小化的窗口必须填充进去的一个矩形小于或等于SM_C?ICONSPACING
SM_CXMINTRACK, SM_CYMINTRACK 窗口的最小轨迹宽度
SM_CXSCREEN, SM_CYSCREEN 屏幕大小
SM_CXSIZE, SM_CYSIZE 标题栏位图的大小
SM_CXSIZEFRAME, SM_CYSIZEFRAME 具有WS_THICKFRAME样式的窗口的大小
SM_CXSMICON, SM_CYSMICON 小图标的大小
SM_CXSMSIZE, SM_CYSMSIZE 小标题按钮的大小
SM_CXVSCROLL, SM_CYVSCROLL 垂直滚动条中的箭头按钮的大小
SM_CYCAPTION 窗口标题的高度
SM_CYKANJIWINDOW Kanji窗口的大小(Height of Kanji window)
SM_CYMENU 菜单高度
SM_CYSMCAPTION 小标题的高度
SM_CYVTHUMB 垂直滚动条上滚动块的高度
SM_DBCSENABLED 如支持双字节则为TRUE
SM_DEBUG 如windows的调试版正在运行,则为TRUE
SM_MENUDROPALIGNMENT 如弹出式菜单对齐菜单栏项目的左侧,则为零
SM_MIDEASTENABLED 允许了希伯来和阿拉伯语
SM_MOUSEPRESENT 如安装了鼠标则为TRUE
SM_MOUSEWHEELPRESENT 如安装了带轮鼠标则为TRUE;只适用于nt 4.0
SM_NETWORK 如安装了网络,则设置位0。其他位保留未用
SM_PENWINDOWS 如装载了支持笔窗口的DLL,则表示笔窗口的句柄
SM_SECURE 如安装了安全(保密)机制,则为TRUE
SM_SHOWSOUNDS 强制视觉提示播放声音
SM_SLOWMACHINE 系统速度太慢,但仍在运行中(System is too slow for effective use but is being run anyway)
SM_SWAPBUTTON 如左右鼠标键已经交换,则为TRUE
注解
双击区域指定屏幕上一个特定的显示区域,只有在这个区域内连续进行两次鼠标单击,才有可能被当作双击事件处理
其他
常数 SM_ARRANGE, SM_CLEANBOOT, SM_CMETRICS, SM_C?MAXIMIZED, SM_C?MAXTRACK, SM_C?SIZEFRAME, SM_C?SMICON, SM_C?SMSIZE, SM_CYSMCAPTION, SM_SECURE, SM_SHOWSOUNDS, and SM_SLOWMACHINE 未获 NT 3.51 及更早版本的支持
GetSystemPowerStatus
VB声明
Declare Function GetSystemPowerStatus Lib "kernel32" Alias "GetSystemPowerStatus" (lpSystemPowerStatus As SYSTEM_POWER_STATUS) As Long
说明
获得与当前系统电源状态有关的信息。对便携式计算机来说,这些信息特别有用。在那些地方,可用这个函数了解有关电源和电池组的情况
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
lpSystemPowerStatus SYSTEM_POWER_STATUS,用于装载电源状态信息的结构
注解
结果的准确度取决于系统实际的电源管理能力
GetSystemTime
VB声明
Declare Sub GetSystemTime Lib "kernel32" Alias "GetSystemTime" (lpSystemTime As SYSTEMTIME)
说明
在一个SYSTEMTIME中载入当前系统时间,这个时间采用的是“协同世界时间”(即UTC,也叫做GMT)格式
参数表
参数 类型及说明
lpSystemTime SYSTEMTIME,随同当前时间载入的结构
GetSystemTimeAdjustment
VB声明
Declare Function GetSystemTimeAdjustment Lib "kernel32" Alias "GetSystemTimeAdjustment" (lpTimeAdjustment As Long, lpTimeIncrement As Long, lpTimeAdjustmentDisabled As Boolean) As Long
说明
Win32可使内部系统时钟与一个外部的时钟信号源同步,方法是定时添加一个校准值。这个函数指定的所有时间都以100ns(0.1ms)为单位递增
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
lpTimeAdjustment Long,添加到内部系统时钟的时间量
lpTimeIncrement Long,校准间隔时间。等于中断时钟时间
lpTimeAdjustmentDisabled Boolean,如时间调校功能关闭,则为TRUE
示例
Dim lpTimeAdjustment&, lpTimeIncrement&, lpTimeAdjustmentDisabled&
GetSystemTimeAdjustment lpTimeAdjustment, lpTimeIncrement, lpTimeAdjustmentDisabled
Print "Time adjustment: " & lpTimeAdjustment & "Increment: " & lpTimeIncrement & "Adjustment Disabled: " & lpTimeAdjustmentDisabled
GetThreadLocale
VB声明
Declare Function GetThreadLocale Lib "KERNEL32" Alias "GetThreadLocale" () As Long
说明
取得当前线程的地方ID
返回值
Long,地方标识符
注解
在vb下,除非从一个多线程EXE服务器调用,否则当前线程就是当前应用程序
GetTickCount
VB声明
Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long
说明
用于获取自windows启动以来经历的时间长度(毫秒)
返回值
Long,以毫秒为单位的windows运行时间
GetTimeFormat
VB声明
Declare Function GetTimeFormat Lib "kernel32" Alias "GetTimeFormatA" (ByVal Locale As Long, ByVal dwFlags As Long, lpTime As SYSTEMTIME, ByVal lpFormat As String, ByVal lpTimeStr As String, ByVal cchTime 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选择不同的日期格式
lpTime SYSTEMTIME,用于包容系统时间的一个结构
lpFormat String,可设为NULL,使用特定于不同地方的值(用vbNullString传递一个NULL)。否则包含一个时间格式字串。对h,hh,hhh,hhhh,m,mm,s,ss这样的代码来说,它们的用法与在vb格式命令中的用法是相同的。t和tt用于指定一个时间段标志(A或AM,P或PM)
lpTimeStr String,指定一个缓冲区,用于容纳格式化过后的字串。注意事先对字串的长度进行正确的预初始化
cchTime Long,lpTimeStr缓冲区的长度。如为零,表示函数会返回需要缓冲区的大小
注解
对于dwFlags参数的解释可能翻译有错误。原文为:
If lpFormat is specified, this should be zero. Otherwise, may be set to LOCALE_NOUSEROVERRIDE to force the system locale parameters to be used even if they have been overridden by the user. Use the self-explanatory constants TIME_NOMINUITESORSECONDS, TIME_NOSECONDS, or TIME_FORCE24HOURFORMAT to choose between date formats. Constant TIME_NOMARKER removes the AM or PM marker.
GetTimeZoneInformation
VB声明
Declare Function GetTimeZoneInformation Lib "kernel32" Alias "GetTimeZoneInformation" (lpTimeZoneInformation As TIME_ZONE_INFORMATION) As Long
说明
在一个TIME_ZONE_INFORMATION结构中载入与系统时区设置有关的信息
返回值
Long,下述常数之一:
TIME_ZONE_ID_INVALID 函数执行失败,会设置GetLastError
TIME_ZONE_ID_UNKNOWN 时区未知(可能仍然指定了bias值)
TIME_ZONE_ID_STANDARD 标准时间有效
TIME_ZONE_ID_DAYLIGHT 夏令时有效
参数表
参数 类型及说明
lpTimeZoneInformation TIME_ZONE_INFORMATION,用于载入时区信息的结构
注解
在lpTimeZoneInformation结构中为本地时间添加bias信息,从而获得系统时间。TIME_ZONE_INFORMATION结构内部的DaylightName和StandardName字串肯定采用Unicode格式
GetUserDefaultLangID
VB声明
Declare Function GetUserDefaultLangID Lib "kernel32" Alias "GetUserDefaultLangID" () As Integer
说明
为当前用户取得默认语言ID
返回值
Long,当前用户的语言ID
GetUserDefaultLCID
VB声明
Declare Function GetUserDefaultLCID Lib "kernel32" Alias "GetUserDefaultLCID" () As Long
说明
取得当前用户的默认“地方”设置
返回值
Long,针对当前用户的默认地方ID
GetUserName
VB声明
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
说明
取得当前用户的名字
返回值
Long,TRUE(非零)表示成功,否则返回零。会设置GetLastError
参数表
参数 类型及说明
lpBuffer String,一个字串缓冲区,预先初始化成由nSize指定的长度。它将用于容纳用户名
nSize Long,初始化成lpBuffer的长度。返回以后,它会包含载入lpBuffer的字符数量
示例
Dim s$, cnt&, dl&
cnt& = 199
s$ = String$(200,0)
dl& = GetUserName(s$, cnt)
Debug.Print Left$(s$, cnt); cnt
GetVersion
VB声明
Declare Function GetVersion Lib "kernel32" Alias "GetVersion" () As Long
说明
判断当前运行的Windows和DOS版本
返回值
Long,低16位包含了windows版本;低字节包含了主版本号(3代表windows 3.10,4代表nt 4.0);高字节包含了两个数位的辅助版本号(10代表windows 3.10,95代表windows 95)。高16位则包含了平台信息。针对windows NT,高位设为0;针对windows for workgroups上运行的Win32s,则高位为1
注解
在win32下,最好换用GetVersionEx函数。在win32下,高字不会返回DOS版本
GetVersionEx
VB声明
Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (ByVal lpVersionInformation As OSVERSIONINFO) As Long
说明
在一个OSVERSIONINFO结构中载入与平台和操作系统有关的版本信息
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
lpVersionInformation OSVERSIONINFO,用于装载版本信息的结构。在正式调用函数之前,必须先将这个结构的dwOSVersionInfoSize字段设为结构的大小(148)
HideCaret
VB声明
Declare Function HideCaret Lib "user32" Alias "HideCaret" (ByVal hwnd As Long) As Long
说明
在指定的窗口隐藏插入符(光标)
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hwnd Long,包含了插入符的窗口的句柄。可能是零;在这种情况下,只有包容了插入符的那个窗口由活动任务拥有时,插入符才会被隐藏
注解
针对插入符的显示,windows维护着一个内部计数器;类似于ShowCursor函数使用的那个。所以对HideCaret 和 ShowCaret的调用必须进行一番权衡
IsValidCodePage
VB声明
Declare Function IsValidCodePage Lib "kernel32" Alias "IsValidCodePage" (ByVal CodePage As Long) As Long
说明
判断一个代码页是否有效
返回值
Long,如代码页有效,就返回TRUE(非零);否则返回零
参数表
参数 类型及说明
CodePage Long,一个代码页的标识符。参考GetACP和GetOEMCP函数
|
|