Option Explicit
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MEMORYSTATUS)
Private mvarSysDir As String
Private mvarWinDir As String
Private mvarComputerName As String
Private mvarUserName As String
Private mvarSysRunTime As String
Private mvarResRat As String
Private mvarPhyMemory As String
Private Type MEMORYSTATUS
dwLength As Long
dwMemoryLoad As Long
dwTotalPhys As Long
dwAvailPhys As Long
dwTotalPageFile As Long
dwAvailPageFile As Long
dwTotalVirtual As Long
dwAvailVirtual As Long
End Type
Public Property Get SysDir() As String '得到系统目录
Dim buffer As String * 256
Call GetSystemDirectory(buffer, 256)
mvarSysDir = Left(buffer, InStr(1, buffer, vbNullChar) - 1)
SysDir = mvarSysDir
End Property
Public Property Get WinDir() As String '得到Windows安装目录
Dim buffer As String * 256
Call GetWindowsDirectory(buffer, 256)
mvarWinDir = Left(buffer, InStr(1, buffer, vbNullChar) - 1)
WinDir = mvarWinDir
End Property
Public Property Get ComputerName() As String '得到计算机名字
Dim buffer As String * 256
Call GetComputerName(buffer, 256)
mvarComputerName = Left(buffer, InStr(1, buffer, vbNullChar) - 1)
ComputerName = mvarComputerName
End Property
Public Property Get UserName() As String '得到当前登录用户
Dim buffer As String * 256
Call GetUserName(buffer, 256)
mvarUserName = Left(buffer, InStr(1, buffer, vbNullChar) - 1)
UserName = mvarUserName
End Property
Public Property Get SysRunTime() As String '得到系统运行时间
Dim RunH As String
Dim RunM As String
Dim RunS As String
RunH = Int(GetTickCount / 1000 / 60 / 60)
RunM = Int(GetTickCount / 1000 / 60) - Int(GetTickCount / 1000 / 60 / 60) * 60
RunS = GetTickCount / 1000 - RunH * 3600 - RunM * 60
mvarSysRunTime = RunH & "小时" & RunM & "分钟" & RunS & "秒"
SysRunTime = mvarSysRunTime
End Property
Public Property Get GetResRat() As String '得到屏幕分辨率
mvarResRat = Screen.Width / Screen.TwipsPerPixelX & "*" & Screen.Height / Screen.TwipsPerPixelY
GetResRat = mvarResRat
End Property
Public Property Get TotalPhyMemory() As String '得到计算机上安装的物理内存
Dim TotalMemory As MEMORYSTATUS
Call GlobalMemoryStatus(TotalMemory)
mvarPhyMemory = TotalMemory.dwTotalPhys / 1024 & "KB"
TotalPhyMemory = mvarPhyMemory
End Property