Author:水如烟
从注册表中取。其它方法未作尝试。
ApplicationType.vb
Namespace
LzmTW.MSOffice
Public Enum ApplicationType
Access
Excel
Word
Outlook
PowerPoint
Publisher
End Enum
End Namespace
Public Enum ApplicationType
Access
Excel
Word
Outlook
PowerPoint
Publisher
End Enum
End Namespace
Constance.vb
Namespace
LzmTW.MSOffice.Info
Friend Class Constance
Public Const REGKEY_APPLICATION_TYPE As String = " {0}.Application/ "
Public Const REGKEY_OFFICE_VER As String = " SOFTWARE/Microsoft/Office/{0}/ "
Public Const REGKEY_OFFICE_COMMON_VER As String = " SOFTWARE/Microsoft/Office/{0}/Common/ "
Public Shared Function GetApplicationKey( ByVal app As ApplicationType) As String
Return String .Format(REGKEY_APPLICATION_TYPE, app.ToString)
End Function
Public Shared Function GetOfficeCommonKey( ByVal ver As Version) As String
Return String .Format(REGKEY_OFFICE_COMMON_VER, GetMasterVer(ver))
End Function
Public Shared Function GetOfficeKey( ByVal ver As Version) As String
Return String .Format(REGKEY_OFFICE_VER, GetMasterVer(ver))
End Function
Public Shared Function GetMasterVer( ByVal ver As Version) As String
Return String .Concat(ver.Major, " . " , ver.Minor)
End Function
Public Shared Function GetBinaryValue( ByVal keyvalue As Object ) As String
If keyvalue Is Nothing Then Return Nothing
Dim mBytes As Byte () = CType (keyvalue, Byte ())
Return System.Text.Encoding.Unicode.GetString(mBytes).Replace( ChrW ( 0 ), "" )
End Function
Public Shared Function GetProductName( ByVal versionMajor As Integer , ByVal app As ApplicationType) As String
Dim mOther As String
Select Case versionMajor
Case 8
mOther = " 98 "
Case 9
mOther = " 2000 "
Case 10
mOther = " XP "
Case 11
mOther = " 2003 "
Case 12
mOther = " 2007 "
Case Else
mOther = "
Friend Class Constance
Public Const REGKEY_APPLICATION_TYPE As String = " {0}.Application/ "
Public Const REGKEY_OFFICE_VER As String = " SOFTWARE/Microsoft/Office/{0}/ "
Public Const REGKEY_OFFICE_COMMON_VER As String = " SOFTWARE/Microsoft/Office/{0}/Common/ "
Public Shared Function GetApplicationKey( ByVal app As ApplicationType) As String
Return String .Format(REGKEY_APPLICATION_TYPE, app.ToString)
End Function
Public Shared Function GetOfficeCommonKey( ByVal ver As Version) As String
Return String .Format(REGKEY_OFFICE_COMMON_VER, GetMasterVer(ver))
End Function
Public Shared Function GetOfficeKey( ByVal ver As Version) As String
Return String .Format(REGKEY_OFFICE_VER, GetMasterVer(ver))
End Function
Public Shared Function GetMasterVer( ByVal ver As Version) As String
Return String .Concat(ver.Major, " . " , ver.Minor)
End Function
Public Shared Function GetBinaryValue( ByVal keyvalue As Object ) As String
If keyvalue Is Nothing Then Return Nothing
Dim mBytes As Byte () = CType (keyvalue, Byte ())
Return System.Text.Encoding.Unicode.GetString(mBytes).Replace( ChrW ( 0 ), "" )
End Function
Public Shared Function GetProductName( ByVal versionMajor As Integer , ByVal app As ApplicationType) As String
Dim mOther As String
Select Case versionMajor
Case 8
mOther = " 98 "
Case 9
mOther = " 2000 "
Case 10
mOther = " XP "
Case 11
mOther = " 2003 "
Case 12
mOther = " 2007 "
Case Else
mOther = "