public sub StartSysInfo( )
General information
Full name frmAbout.StartSysInfo Access public Overload of
Local variables
SysInfoPath String rc Long
Source code
Public Sub StartSysInfo()
On Error GoTo SysInfoErr
Dim rc As Long
Dim SysInfoPath As String
' Try To Get System Info Program Path\Name From Registry...
If GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFO, gREGVALSYSINFO, SysInfoPath) Then
' Try To Get System Info Program Path Only From Registry...
ElseIf GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFOLOC, gREGVALSYSINFOLOC, SysInfoPath) Then
' Validate Existance Of Known 32 Bit File Version
If (Dir(SysInfoPath & "\MSINFO32.EXE") <> "") Then
SysInfoPath = SysInfoPath & "\MSINFO32.EXE"
' Error - File Can Not Be Found...
Else
GoTo SysInfoErr
End If
' Error - Registry Entry Can Not Be Found...
Else
GoTo SysInfoErr
End If
Call Shell(SysInfoPath, vbNormalFocus)
Exit Sub
SysInfoErr:
MsgBox "System Information Is Unavailable At This Time", vbOKOnly
End Sub
Functions and events referenced
Full name Owners frmAbout.GetKeyValue frmAbout
Functions/Events referencing
Full name Owners cmdSysInfo.cmdSysInfo_Click cmdSysInfo
Referenced properties
Full name Scope frmAbout.gREGVALSYSINFOLOC attribute frmAbout.gREGKEYSYSINFOLOC attribute frmAbout.StartSysInfo.SysInfoPath local frmAbout.gREGVALSYSINFO attribute frmAbout.gREGKEYSYSINFO attribute frmAbout.HKEY_LOCAL_MACHINE attribute
public function GetKeyValue( KeyRoot as Long , KeyName as String , SubKeyRef as String , byref KeyVal as String ) as Boolean
General information
Full name frmAbout.GetKeyValue Access public Overload of
Parameters
KeyVal String SubKeyRef String KeyName String KeyRoot Long
Local variables
KeyValSize Long tmpVal String KeyValType Long hDepth Long hKey Long rc Long i Long
Source code
Public Function GetKeyValue(KeyRoot As Long, KeyName As String, SubKeyRef As String, ByRef KeyVal As String) As Boolean
Dim i As Long ' Loop Counter
Dim rc As Long ' Return Code
Dim hKey As Long ' Handle To An Open Registry Key
Dim hDepth As Long '
Dim KeyValType As Long ' Data Type Of A Registry Key
Dim tmpVal As String ' Tempory Storage For A Registry Key Value
Dim KeyValSize As Long ' Size Of Registry Key Variable
'------------------------------------------------------------
' Open RegKey Under KeyRoot {HKEY_LOCAL_MACHINE...}
'------------------------------------------------------------
rc = RegOpenKeyEx(KeyRoot, KeyName, 0, KEY_ALL_ACCESS, hKey) ' Open Registry Key
If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError ' Handle Error...
tmpVal = String$( 1024, 0) ' Allocate Variable Space
KeyValSize = 1024 ' Mark Variable Size
'------------------------------------------------------------
' Retrieve Registry Key Value...
'------------------------------------------------------------
rc = RegQueryValueEx(hKey, SubKeyRef, 0, _
KeyValType, tmpVal, KeyValSize) ' Get/Create Key Value
If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError ' Handle Errors
If (Asc(Mid(tmpVal, KeyValSize, 1)) = 0) Then ' Win95 Adds Null Terminated String...
tmpVal = Left(tmpVal, KeyValSize - 1) ' Null Found, Extract From String
Else ' WinNT Does NOT Null Terminate String...
tmpVal = Left(tmpVal, KeyValSize) ' Null Not Found, Extract String Only
End If
'------------------------------------------------------------
' Determine Key Value Type For Conversion...
'------------------------------------------------------------
Select Case KeyValType ' Search Data Types...
Case REG_SZ ' String Registry Key Data Type
KeyVal = tmpVal ' Copy String Value
Case REG_DWORD ' Double Word Registry Key Data Type
For i = Len(tmpVal) To 1 Step - 1 ' Convert Each Bit
KeyVal = KeyVal + Hex(Asc(Mid(tmpVal, i, 1))) ' Build Value Char. By Char.
Next
KeyVal = Format$( "&h" + KeyVal) ' Convert Double Word To String
End Select
GetKeyValue = True ' Return Success
rc = RegCloseKey(hKey) ' Close Registry Key
Exit Function ' Exit
GetKeyError: ' Cleanup After An Error Has Occured...
KeyVal = "" ' Set Return Val To Empty String
GetKeyValue = False ' Return Failure
rc = RegCloseKey(hKey) ' Close Registry Key
End Function
Functions and events referenced
Full name Owners frmAbout.RegCloseKey frmAbout frmAbout.RegQueryValueEx frmAbout frmAbout.RegOpenKeyEx frmAbout
Functions/Events referencing
Full name Owners frmAbout.StartSysInfo frmAbout
Referenced properties
Full name Scope frmAbout.GetKeyValue.i local frmAbout.REG_DWORD attribute frmAbout.GetKeyValue.KeyVal parameter frmAbout.REG_SZ attribute frmAbout.GetKeyValue.KeyValType local frmAbout.GetKeyValue.SubKeyRef parameter frmAbout.GetKeyValue.KeyValSize local frmAbout.GetKeyValue.tmpVal local frmAbout.ERROR_SUCCESS attribute frmAbout.GetKeyValue.hKey local frmAbout.KEY_ALL_ACCESS attribute frmAbout.GetKeyValue.KeyName parameter frmAbout.GetKeyValue.KeyRoot parameter frmAbout.GetKeyValue.rc local
Document created on Wednesday 20 March 2002 at 09:57 by Visual Expert