frmAbout.frm
上传用户:szlwled
上传日期:2022-06-30
资源大小:95k
文件大小:9k
源码类别:

视频捕捉/采集

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Begin VB.Form frmAbout 
  3.    BorderStyle     =   3  'Fixed Dialog
  4.    Caption         =   "关于 摄像头监视系统"
  5.    ClientHeight    =   3525
  6.    ClientLeft      =   45
  7.    ClientTop       =   435
  8.    ClientWidth     =   5865
  9.    ClipControls    =   0   'False
  10.    LinkTopic       =   "Form1"
  11.    MaxButton       =   0   'False
  12.    MinButton       =   0   'False
  13.    ScaleHeight     =   3525
  14.    ScaleWidth      =   5865
  15.    ShowInTaskbar   =   0   'False
  16.    StartUpPosition =   1  '所有者中心
  17.    Tag             =   "关于 摄像头监视系统"
  18.    Begin VB.PictureBox picIcon 
  19.       AutoSize        =   -1  'True
  20.       BackColor       =   &H00C0C0C0&
  21.       ClipControls    =   0   'False
  22.       Height          =   540
  23.       Left            =   240
  24.       Picture         =   "frmAbout.frx":0000
  25.       ScaleHeight     =   480
  26.       ScaleMode       =   0  'User
  27.       ScaleWidth      =   480
  28.       TabIndex        =   2
  29.       TabStop         =   0   'False
  30.       Top             =   240
  31.       Width           =   540
  32.    End
  33.    Begin VB.CommandButton cmdOK 
  34.       Cancel          =   -1  'True
  35.       Caption         =   "确定"
  36.       Default         =   -1  'True
  37.       Height          =   345
  38.       Left            =   4245
  39.       TabIndex        =   0
  40.       Tag             =   "确定"
  41.       Top             =   2625
  42.       Width           =   1467
  43.    End
  44.    Begin VB.CommandButton cmdSysInfo 
  45.       Caption         =   "系统信息(&S)..."
  46.       Height          =   345
  47.       Left            =   4260
  48.       TabIndex        =   1
  49.       Tag             =   "系统信息(&S)..."
  50.       Top             =   3075
  51.       Width           =   1452
  52.    End
  53.    Begin VB.Label lblDescription 
  54.       Caption         =   "应用程序描述"
  55.       ForeColor       =   &H00000000&
  56.       Height          =   1170
  57.       Left            =   1050
  58.       TabIndex        =   6
  59.       Tag             =   "应用程序描述"
  60.       Top             =   1125
  61.       Width           =   4092
  62.    End
  63.    Begin VB.Label lblTitle 
  64.       Caption         =   "应用程序标题"
  65.       ForeColor       =   &H00000000&
  66.       Height          =   480
  67.       Left            =   1050
  68.       TabIndex        =   5
  69.       Tag             =   "应用程序标题"
  70.       Top             =   240
  71.       Width           =   4092
  72.    End
  73.    Begin VB.Line Line1 
  74.       BorderColor     =   &H00808080&
  75.       BorderStyle     =   6  'Inside Solid
  76.       Index           =   1
  77.       X1              =   225
  78.       X2              =   5657
  79.       Y1              =   2430
  80.       Y2              =   2430
  81.    End
  82.    Begin VB.Line Line1 
  83.       BorderColor     =   &H00FFFFFF&
  84.       BorderWidth     =   2
  85.       Index           =   0
  86.       X1              =   240
  87.       X2              =   5657
  88.       Y1              =   2445
  89.       Y2              =   2445
  90.    End
  91.    Begin VB.Label lblVersion 
  92.       Caption         =   "版本"
  93.       Height          =   225
  94.       Left            =   1050
  95.       TabIndex        =   4
  96.       Tag             =   "版本"
  97.       Top             =   780
  98.       Width           =   4092
  99.    End
  100.    Begin VB.Label lblDisclaimer 
  101.       Caption         =   "警告: ..."
  102.       ForeColor       =   &H00000000&
  103.       Height          =   825
  104.       Left            =   255
  105.       TabIndex        =   3
  106.       Tag             =   "警告: ..."
  107.       Top             =   2625
  108.       Width           =   3870
  109.    End
  110. End
  111. Attribute VB_Name = "frmAbout"
  112. Attribute VB_GlobalNameSpace = False
  113. Attribute VB_Creatable = False
  114. Attribute VB_PredeclaredId = True
  115. Attribute VB_Exposed = False
  116. ' 注册键安全选项...
  117. Const KEY_ALL_ACCESS = &H2003F
  118.                                           
  119. ' 注册键根类型...
  120. Const HKEY_LOCAL_MACHINE = &H80000002
  121. Const ERROR_SUCCESS = 0
  122. Const REG_SZ = 1                         ' Unicode 空结尾字符串
  123. Const REG_DWORD = 4                      ' 32位数
  124. Const gREGKEYSYSINFOLOC = "SOFTWAREMicrosoftShared Tools Location"
  125. Const gREGVALSYSINFOLOC = "MSINFO"
  126. Const gREGKEYSYSINFO = "SOFTWAREMicrosoftShared ToolsMSINFO"
  127. Const gREGVALSYSINFO = "PATH"
  128. Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long
  129. Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As Long
  130. Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
  131. Private Sub Form_Load()
  132.     lblVersion.Caption = "版本 " & App.Major & "." & App.Minor & "." & App.Revision
  133.     lblTitle.Caption = App.Title
  134. End Sub
  135. Private Sub cmdSysInfo_Click()
  136.         Call StartSysInfo
  137. End Sub
  138. Private Sub cmdOK_Click()
  139.         Unload Me
  140. End Sub
  141. Public Sub StartSysInfo()
  142.     On Error GoTo SysInfoErr
  143.         Dim rc As Long
  144.         Dim SysInfoPath As String
  145.         
  146.         ' 从注册表获得系统信息程序路径名称...
  147.         If GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFO, gREGVALSYSINFO, SysInfoPath) Then
  148.         ' 仅从注册表获得系统信息程序路径...
  149.         ElseIf GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFOLOC, gREGVALSYSINFOLOC, SysInfoPath) Then
  150.                 ' 验证已知的 32 位文件版本的存在
  151.                 If (Dir(SysInfoPath & "MSINFO32.EXE") <> "") Then
  152.                         SysInfoPath = SysInfoPath & "MSINFO32.EXE"
  153.                         
  154.                 ' 错误 - 文件找不到...
  155.                 Else
  156.                         GoTo SysInfoErr
  157.                 End If
  158.         ' 错误 - 注册表项找不到...
  159.         Else
  160.                 GoTo SysInfoErr
  161.         End If
  162.         
  163.         Call Shell(SysInfoPath, vbNormalFocus)
  164.         
  165.         Exit Sub
  166. SysInfoErr:
  167.         MsgBox "此时系统信息不可用", vbOKOnly
  168. End Sub
  169. Public Function GetKeyValue(KeyRoot As Long, KeyName As String, SubKeyRef As String, ByRef KeyVal As String) As Boolean
  170.         Dim i As Long                                           ' 循环记数器
  171.         Dim rc As Long                                          ' 返回代码
  172.         Dim hKey As Long                                        ' 打开的注册表键句柄
  173.         Dim hDepth As Long                                      '
  174.         Dim KeyValType As Long                                  ' 注册表键数据类型
  175.         Dim tmpVal As String                                    ' 临时存储一个注册表键值
  176.         Dim KeyValSize As Long                                  ' 注册表键变量大小
  177.         '------------------------------------------------------------
  178.         ' 在键根{HKEY_LOCAL_MACHINE...}之下打开注册键
  179.         '------------------------------------------------------------
  180.         rc = RegOpenKeyEx(KeyRoot, KeyName, 0, KEY_ALL_ACCESS, hKey) ' 打开注册表键
  181.         
  182.         If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError          ' 错误处理...
  183.         
  184.         tmpVal = String$(1024, 0)                             ' 分配变量空间
  185.         KeyValSize = 1024                                       ' 标记变量大小
  186.         
  187.         '------------------------------------------------------------
  188.         ' 检索注册表键值...
  189.         '------------------------------------------------------------
  190.         rc = RegQueryValueEx(hKey, SubKeyRef, 0, KeyValType, tmpVal, KeyValSize)    ' 获得/创建键值
  191.                                                 
  192.         If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError          ' 错误处理
  193.       
  194.         tmpVal = VBA.Left(tmpVal, InStr(tmpVal, VBA.Chr(0)) - 1)
  195.         '------------------------------------------------------------
  196.         ' 决定转换的键值类型...
  197.         '------------------------------------------------------------
  198.         Select Case KeyValType                                  ' 搜索数据类型...
  199.         Case REG_SZ                                             ' 字符串注册表键数据类型
  200.                 KeyVal = tmpVal                                     ' 复制字符串值
  201.         Case REG_DWORD                                          ' 双精度注册表键数据类型
  202.                 For i = Len(tmpVal) To 1 Step -1                    ' 转换每一页
  203.                         KeyVal = KeyVal + Hex(Asc(Mid(tmpVal, i, 1)))   ' 一个字符一个字符地生成值
  204.                 Next
  205.                 KeyVal = Format$("&h" + KeyVal)                     ' 转换双精度为字符串
  206.         End Select
  207.         
  208.         GetKeyValue = True                                      ' 返回成功
  209.         rc = RegCloseKey(hKey)                                  ' 关闭注册表键
  210.         Exit Function                                           ' 退出
  211.         
  212. GetKeyError:    ' Cleanup After An Error Has Occured...
  213.         KeyVal = ""                                             ' 设返回值为空字符串
  214.         GetKeyValue = False                                     ' 返回失败
  215.         rc = RegCloseKey(hKey)                                  ' 关闭注册表键
  216. End Function