frmAbout.frm
上传用户:laihaixin
上传日期:2013-01-26
资源大小:1169k
文件大小:10k
源码类别:

医药行业

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Begin VB.Form frmAbout 
  3.    BackColor       =   &H00404040&
  4.    BorderStyle     =   3  'Fixed Dialog
  5.    Caption         =   "关于我的应用程序"
  6.    ClientHeight    =   3630
  7.    ClientLeft      =   2340
  8.    ClientTop       =   1935
  9.    ClientWidth     =   5730
  10.    ClipControls    =   0   'False
  11.    Icon            =   "frmAbout.frx":0000
  12.    LinkTopic       =   "Form2"
  13.    MaxButton       =   0   'False
  14.    MDIChild        =   -1  'True
  15.    MinButton       =   0   'False
  16.    Picture         =   "frmAbout.frx":030A
  17.    ScaleHeight     =   2505.49
  18.    ScaleMode       =   0  'User
  19.    ScaleWidth      =   5380.766
  20.    ShowInTaskbar   =   0   'False
  21.    Begin VB.CommandButton cmdOK 
  22.       Cancel          =   -1  'True
  23.       Caption         =   "确定"
  24.       Default         =   -1  'True
  25.       Height          =   362
  26.       Left            =   4125
  27.       TabIndex        =   0
  28.       Top             =   2625
  29.       Width           =   1278
  30.    End
  31.    Begin VB.CommandButton cmdSysInfo 
  32.       Caption         =   "系统信息(&S)"
  33.       Height          =   362
  34.       Left            =   4140
  35.       TabIndex        =   1
  36.       Top             =   3115
  37.       Width           =   1278
  38.    End
  39.    Begin VB.Label Label1 
  40.       BackStyle       =   0  'Transparent
  41.       Caption         =   "医药院品系管统理"
  42.       BeginProperty Font 
  43.          Name            =   "隶书"
  44.          Size            =   26.25
  45.          Charset         =   134
  46.          Weight          =   700
  47.          Underline       =   0   'False
  48.          Italic          =   0   'False
  49.          Strikethrough   =   0   'False
  50.       EndProperty
  51.       ForeColor       =   &H0080FF80&
  52.       Height          =   2175
  53.       Left            =   240
  54.       TabIndex        =   5
  55.       Top             =   120
  56.       Width           =   1335
  57.    End
  58.    Begin VB.Line Line1 
  59.       BorderColor     =   &H00808080&
  60.       BorderStyle     =   6  'Inside Solid
  61.       Index           =   1
  62.       X1              =   84.515
  63.       X2              =   5309.398
  64.       Y1              =   1687.582
  65.       Y2              =   1687.582
  66.    End
  67.    Begin VB.Label lblDescription 
  68.       BackColor       =   &H00404040&
  69.       BackStyle       =   0  'Transparent
  70.       BorderStyle     =   1  'Fixed Single
  71.       Caption         =   $"frmAbout.frx":59F9
  72.       ForeColor       =   &H00000000&
  73.       Height          =   1575
  74.       Left            =   1650
  75.       TabIndex        =   2
  76.       Top             =   570
  77.       Width           =   3840
  78.    End
  79.    Begin VB.Label lblTitle 
  80.       BackColor       =   &H00404040&
  81.       BackStyle       =   0  'Transparent
  82.       BorderStyle     =   1  'Fixed Single
  83.       Caption         =   "应用程序标题"
  84.       ForeColor       =   &H00000000&
  85.       Height          =   232
  86.       Left            =   1650
  87.       TabIndex        =   4
  88.       Top             =   240
  89.       Width           =   3840
  90.    End
  91.    Begin VB.Line Line1 
  92.       BorderColor     =   &H00FFFFFF&
  93.       BorderWidth     =   2
  94.       Index           =   0
  95.       X1              =   98.6
  96.       X2              =   5309.398
  97.       Y1              =   1697.935
  98.       Y2              =   1697.935
  99.    End
  100.    Begin VB.Label lblDisclaimer 
  101.       BackColor       =   &H00404040&
  102.       BackStyle       =   0  'Transparent
  103.       Caption         =   "医院药品库房管理系统开发人:风云"
  104.       ForeColor       =   &H00000000&
  105.       Height          =   290
  106.       Left            =   288
  107.       TabIndex        =   3
  108.       Top             =   2625
  109.       Width           =   3630
  110.    End
  111. End
  112. Attribute VB_Name = "frmAbout"
  113. Attribute VB_GlobalNameSpace = False
  114. Attribute VB_Creatable = False
  115. Attribute VB_PredeclaredId = True
  116. Attribute VB_Exposed = False
  117. Option Explicit
  118. ' 注册表关键字安全选项...
  119. Const READ_CONTROL = &H20000
  120. Const KEY_QUERY_VALUE = &H1
  121. Const KEY_SET_VALUE = &H2
  122. Const KEY_CREATE_SUB_KEY = &H4
  123. Const KEY_ENUMERATE_SUB_KEYS = &H8
  124. Const KEY_NOTIFY = &H10
  125. Const KEY_CREATE_LINK = &H20
  126. Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + _
  127.                        KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + _
  128.                        KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL
  129.                      
  130. ' 注册表关键字 ROOT 类型...
  131. Const HKEY_LOCAL_MACHINE = &H80000002
  132. Const ERROR_SUCCESS = 0
  133. Const REG_SZ = 1                         ' 独立的空的终结字符串
  134. Const REG_DWORD = 4                      ' 32位数字
  135. Const gREGKEYSYSINFOLOC = "SOFTWAREMicrosoftShared Tools Location"
  136. Const gREGVALSYSINFOLOC = "MSINFO"
  137. Const gREGKEYSYSINFO = "SOFTWAREMicrosoftShared ToolsMSINFO"
  138. Const gREGVALSYSINFO = "PATH"
  139. 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
  140. 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
  141. Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
  142. Private Sub cmdSysInfo_Click()
  143.   Call StartSysInfo
  144. End Sub
  145. Private Sub cmdOK_Click()
  146.   Unload Me
  147. End Sub
  148. Private Sub Form_Load()
  149. frmAbout.Top = (frmmain.Height - frmAbout.Height) / 2 - 500
  150. frmAbout.Left = (frmmain.Width - frmAbout.Width) / 2
  151.     Me.Caption = "关于" & App.Title
  152.     lblVersion.Caption = "版本" & App.Major & "." & App.Minor & "." & App.Revision & "  版权所有(C) 2002 Bluesoft Corp"
  153.     lblTitle.Caption = App.Title
  154.     End Sub
  155. Public Sub StartSysInfo()
  156.     On Error GoTo SysInfoErr
  157.   
  158.     Dim rc As Long
  159.     Dim SysInfoPath As String
  160.     
  161.     ' 试图从注册表中获得系统信息程序的路径及名称...
  162.     If GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFO, gREGVALSYSINFO, SysInfoPath) Then
  163.     ' 试图仅从注册表中获得系统信息程序的路径...
  164.     ElseIf GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFOLOC, gREGVALSYSINFOLOC, SysInfoPath) Then
  165.         ' 已知32位文件版本的有效位置
  166.         If (Dir(SysInfoPath & "MSINFO32.EXE") <> "") Then
  167.             SysInfoPath = SysInfoPath & "MSINFO32.EXE"
  168.             
  169.         ' 错误 - 文件不能被找到...
  170.         Else
  171.             GoTo SysInfoErr
  172.         End If
  173.     ' 错误 - 注册表相应条目不能被找到...
  174.     Else
  175.         GoTo SysInfoErr
  176.     End If
  177.     
  178.     Call Shell(SysInfoPath, vbNormalFocus)
  179.     
  180.     Exit Sub
  181. SysInfoErr:
  182.     MsgBox "此时系统信息不可用", vbOKOnly
  183. End Sub
  184. Public Function GetKeyValue(KeyRoot As Long, KeyName As String, SubKeyRef As String, ByRef KeyVal As String) As Boolean
  185.     Dim i As Long                                           ' 循环计数器
  186.     Dim rc As Long                                          ' 返回代码
  187.     Dim hKey As Long                                        ' 打开的注册表关键字句柄
  188.     Dim hDepth As Long                                      '
  189.     Dim KeyValType As Long                                  ' 注册表关键字数据类型
  190.     Dim tmpVal As String                                    ' 注册表关键字值的临时存储器
  191.     Dim KeyValSize As Long                                  ' 注册表关键自变量的尺寸
  192.     '------------------------------------------------------------
  193.     ' 打开 {HKEY_LOCAL_MACHINE...} 下的 RegKey
  194.     '------------------------------------------------------------
  195.     rc = RegOpenKeyEx(KeyRoot, KeyName, 0, KEY_ALL_ACCESS, hKey) ' 打开注册表关键字
  196.     
  197.     If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError          ' 处理错误...
  198.     
  199.     tmpVal = String$(1024, 0)                             ' 分配变量空间
  200.     KeyValSize = 1024                                       ' 标记变量尺寸
  201.     
  202.     '------------------------------------------------------------
  203.     ' 检索注册表关键字的值...
  204.     '------------------------------------------------------------
  205.     rc = RegQueryValueEx(hKey, SubKeyRef, 0, _
  206.                          KeyValType, tmpVal, KeyValSize)    ' 获得/创建关键字值
  207.                         
  208.     If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError          ' 处理错误
  209.     
  210.     If (Asc(Mid(tmpVal, KeyValSize, 1)) = 0) Then           ' Win95 外接程序空终结字符串...
  211.         tmpVal = Left(tmpVal, KeyValSize - 1)               ' Null 被找到,从字符串中分离出来
  212.     Else                                                    ' WinNT 没有空终结字符串...
  213.         tmpVal = Left(tmpVal, KeyValSize)                   ' Null 没有被找到, 分离字符串
  214.     End If
  215.     '------------------------------------------------------------
  216.     ' 决定转换的关键字的值类型...
  217.     '------------------------------------------------------------
  218.     Select Case KeyValType                                  ' 搜索数据类型...
  219.     Case REG_SZ                                             ' 字符串注册关键字数据类型
  220.         KeyVal = tmpVal                                     ' 复制字符串的值
  221.     Case REG_DWORD                                          ' 四字节的注册表关键字数据类型
  222.         For i = Len(tmpVal) To 1 Step -1                    ' 将每位进行转换
  223.             KeyVal = KeyVal + Hex(Asc(Mid(tmpVal, i, 1)))   ' 生成值字符。 By Char。
  224.         Next
  225.         KeyVal = Format$("&h" + KeyVal)                     ' 转换四字节的字符为字符串
  226.     End Select
  227.     
  228.     GetKeyValue = True                                      ' 返回成功
  229.     rc = RegCloseKey(hKey)                                  ' 关闭注册表关键字
  230.     Exit Function                                           ' 退出
  231.     
  232. GetKeyError:      ' 错误发生后将其清除...
  233.     KeyVal = ""                                             ' 设置返回值到空字符串
  234.     GetKeyValue = False                                     ' 返回失败
  235.     rc = RegCloseKey(hKey)                                  ' 关闭注册表关键字
  236. End Function
  237. Private Sub Form_Unload(Cancel As Integer)
  238. frmmain.StatusBar1.Panels(2) = "目前没有窗口被激活"
  239. End Sub
  240. Private Sub Form_Activate()
  241. frmmain.StatusBar1.Panels(2) = "活动窗口:" & frmAbout.Caption
  242. End Sub