基于VB和MS SQL Server的HIS医院管理信息系统设计.doc_第1页
基于VB和MS SQL Server的HIS医院管理信息系统设计.doc_第2页
基于VB和MS SQL Server的HIS医院管理信息系统设计.doc_第3页
基于VB和MS SQL Server的HIS医院管理信息系统设计.doc_第4页
基于VB和MS SQL Server的HIS医院管理信息系统设计.doc_第5页
免费预览已结束,剩余23页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章 引言11 医院信息管理系统现状近年来,随着我国信息产业的飞速发展,计算机的开发应用已渗透到各个领域,而且日趋普及。在医学领域内,计算机的应用已经十分广泛,各种智能诊断设备都与计算机紧密结合在一起,主要应用于两个方面:一是医疗设备智能化,以硬件为主,如彩色B超、CT等。另一种是医院信息管理系统(HIS)的软件建设,不仅可以提高医院的工作效率,同时,也提升了医院的现代化管理形象。我国医院信息管理系统的发展形势十分令人鼓舞,无论是国家、医院还是软件公司,都投入了大量的人力、物力、财力。大中型医院基本上都建设了自己的医院信息管理系统,这说明医院本身在对HIS建设的认识上都有了很大的提高。信息管理系统的建设对医院带来的效率、效益以及管理水平的提高,使医院管理层对信息管理系统建设的重要性和必要性有了更深一步的认识。12 开发系统意义随着我国医疗卫生体制改革的逐步深入,国家将大力发展城市社区和农村乡镇卫生服务事业,但从目前的发展现状看,这些小型医院信息管理系统的建设还很薄弱。而从医院的服务质量和经济效益上考虑,HIS系统的有效运行,将全面提升医院的信息化管理水平,提高医院管理人员、医务人员的工作效率,降低医院的管理成本,为患者就医提供便利,为医院创造更大的社会效益和经济效益。因此,一个适应社会发展的医院,不仅需要有一流的硬件设施,同样也需要一个适合医院发展的HIS系统。由此可以看出,随着我国城乡卫生事业的发展壮大,针对小型医院特点和需求开发HIS系统,有着十分广阔的市场和发展前景。第二章 需求分析说明书21 开发系统背景从我国大中小医院及其信息化建设的情况,我们可以看到目前我国HIS建设过程中,乡镇及社区小型医院的信息化建设并没有得到长足的发展,没有得到HIS企业的根本重视和主动推动。目前小型医院信息化具有:投资要求小,建设周期短的特点。由于内部机构不复杂,容易调整使用的习惯,适应新建的应用模式。有较多可参考的信息化建设成功经验。因此,在医疗卫生机构中占绝对数量优势的中小医院的信息化建设将对大型医院更能有效推动,这是一个被忽视的HIS市场。针对我国HIS发展这一特点,我研发了主要用于农村乡镇和城市社区的小型HIS系统。因为投资小,技术强度不大,开发周期短的等特点,完全符合小型医院的特点,这样势必会使小型医院的信息化建设迈上一个新的台阶。22 开发任务概述根据实际调研情况,乡镇小型医院的机构设置十分简单,看病就医的流程也大致相同。对病人看病,其流程简单概括为:对于非住院病人来说,首先,病人看病要进行挂号登记,登记后当相应的科室找医生开处方,然后拿着处方到门诊收费处交费,接着根据交费单到药房抓药进行治疗。对于住院的病人来说,首先要完成住院登记,接着找到医生进行治疗开处方,然后到收费处交住院押金,最后治疗完毕后办理出院手续。对医院方面来说要完成的功能是查看药房、药库的药品详细信息,对药库的药品进行盘点清查,从而减少损失,对收取的费用生成单据等工作。因此,依据此业务流程,设置HIS的系统模块如下图所示:医院 药库住院部药房门诊药品出库药库盘点药品入库药房发药药房管理门诊收费门诊处方门诊挂号出院登记费用核算住院登记住院处方图2-1 HIS的系统模块图对上这四个模块基本可以完成小型医院的信息化管理,从而提高医院的信息化管理水平,提高医院经济效益。23 项目开发技术本系统开发主要用到的技术是VusialBasic 6.0,Microsoft SQL Server 和ADO。VusialBasic 6.0简介:Visual Basic(VB)是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,VB都是世界上使用人数最多的语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用 DAO、RDO、ADO 连接数据库,或者轻松的创建 ActiveX 控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序 。VB的中心思想就是要便于程序员使用,无论是新手或者专家。VB使用,可以简单建立应用程序的 GUI 系统,但是又可以开发相当复杂的应用项目。VB的程序是一种基于可视化窗体组件的联合,并且增加代码来指定组件的属性和方法。因为默认的属性和方法已经有一部分定义在了组件内,所以程序员不用写多少代码就可以完成一个简单的程序。窗体控件的增加和改变可以用拖放技术实现。一个排列满控件的工具箱来显示可用控件,每个控件都有自己的属性和事件。VB的程序可以包含一个或多个窗体,或者是一个主窗体和多个子窗体。因为越来越多组件的出现,程序员可以选用自己需要的扩展库。VB使得大量的第三方控件有了自己的生存空间。因此,对于本系统的GUI设计来说,使用VB是不错的选择。Microsoft SQL Server简介:数据库系统本质上是一个用计算机存储记录的系统。数据库本身可被看作为一种收集计算机数据文件的仓库或容器。系统用户可以对这些文件执行插入数据、检索数据、更改数据、删除数据等一系列操作。它是一个计算机系统,该系统的目标是存储信息并支持用户检索和更新所需要的信息。典型的数据库系统有Oracle、 Sybase、 Microsoft SQL Server、 Access、 Foxpro等。绝大多数企业目前使用的关系型数据库系统为Microsoft SQL Server。MS SQL Server是使用关系数据库管理系统的标准语言SQL(Structured Query Language,结构查询语言)。SQL语言是所有关系数据库的公共语言,因此,SQL语句是可以移植的。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据等。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有SQL 语句接受集合作为输入,返回集合作为输出。企业级的系统开发更青睐MS SQL做为自己的数据库系统。ADO技术简介:ADO数据控件bfw黑色海岸线网络安全资讯站ActiveX Data Objects (ADO) 是微软最新的数据访问技术,它是Microsoft公司开发数据库应用程序面向对象的新接口。它被设计通过OLE DB实现对不同数据类型数据源的访问。OLE DB包括三个主要的部分:数据提供者、数据消费者和服务组件。其关系如图所示:数据消费者ADObfw黑色海岸线网络安全资讯站数据提供者OLE DBORACLEMS SQL图2-2 ADO技术图ADO向我们提供了一个熟悉的,高层的对OLE DB的Automation封装接口。如同RDO对象是ODBC驱动程序接口一样,ADO对象是OLE DB的接口;就像不同的数据库系统都需要它们自己的ODBC驱动程序一样,不同的数据源同样要求有它们自己的OLE DB提供者(OLE DB provider)。目前,虽然OLE DB提供者比较少,但微软正积极推广该技术,并打算用OLE DB取代ODBC。 ADO向VB程序员提供了很多好处。包括易于使用,熟悉的界面,高速度以及较低的内存占用(已实现ADO2.0的Msado15.dll需要占用342K内存,比RDO的Msrdo20.dll的368K略小,大约是DAO3.5的Dao350.dll所占内存的60)。同传统的数据对象层次(DAO和RDO)不同,ADO可以独立创建。因此你可以只创建一个Connection对象,但是可以有多个,独立的Recordset对象来使用它。ADO是DAO/RDO的后继产物,它扩展了DAO和RDO所使用的对象模型,具有更加简单,更加灵活的操作性能。ADO在前端和数据源之间使用最少的层数,提供了轻量、高性能的数据访问接口,可通过ADO Data控件非编程和利用ADO对象编程来访问各种数据库。第三章 可行性分析可行性分析是系统分析阶段的重要活动,是对系统进行全面、客观、概要的分析。它的任务是确定项目开发始否必要和可行。简单来说,可行性分析是要决定“做还是不做” 。它的主要任务是根据需求分析的初步方案,从多方面分析系统实施的必要性,并对相关的各种因素进行论证,从而对系统的决策提供科学的依据。针对本系统,主要从经济可行可行性和技术可行性两方面来分析。31 经济可行性对于小型医院,因其结构简单,所需功能较少,因此在制作软件的费用方面也比大中型医院的管理系统要廉价许多。因为系统便于维护,因此,在软件实施、运行、维护的费用上,也不会有太大的开销,但其所带来的经济效益却相当可观。HIS系统将会填补管理上的漏洞,有效的防止药品丢失、过期等问题所带来的经济损失。改善了患者的就医环境,提高了医院的工作效率和服务质量。因此,对HIS投入的成本远小于系统本身的价值。32 技术可行性在伴随着信息化时代前进的步伐,信息化应用于各个领域的今天,不管是从硬件还是从软件上,医院信息管理系统的开发中都可以实现,可以满足医院管理的各个环节。不论是C/S 、B/S或者是三层模型的开发模式,都可以根据需求来做出相应的模式。这些技术已在各种信息管理系统中广泛应用,通过实践证明,这些技术也同样适用于小型医院信息管理系统的开发。第四章 系统设计说明书本系统的设计分为用VB搭建的前台界面的设计和用MS SQL搭建后台数据库的设计,利用ADO技术实现前台界面和后台数据库的连接。整个系统采用灰色为主色调,界面友好,操作简单。41用户登录窗体的设计411 功能分析用户登录是进入系统的必要条件,用户只有提供正确的登录信息,才可以启动系统主窗体。412 设计原理首先使用ADO技术,使VB与数据库建立连接,然后在登录窗体中,输入登录者的用户名和密码,会在数据库里检索,如果信息正确则登录成功,如果信息错误,则提示错误。为了防止密码的丢失,特设置密码尝试只能为三次,大于三次的尝试,系统将会自动退出。413 界面设计在已打开个“标准EXE工程”里添加一个名为frmlogin的“登录对话框”窗体。其界面和控件属性如下所示:图4-1 界面设计图窗体和控件主要属性如下表所示:控件属性属性设置frmLogincapation登录Label1capation医院信息管理系统Text1nametxtusernameText2NametxtpwdCommand1namecmdokcapation确定Command2nameCmdcancelcapation取消注:txtusername代表名为txtusername的文本框; cmdOK代表名为cmdOK的按钮414 数据库设计与实现在数据库his_test里插入t_loginuser作为存储登录用户信息的表,并把其字段设计如图所示:图4-2 登录用户信息图向表中插入数据,如username=admin ,pwd=111。在当前工程下添加模块并利用ADO技术实现数据库与VB控件的连接。代码如下:Public objcn As New ADODB.ConnectionPublic objrs As ADODB.RecordsetPublic Sub Main()objcn.Provider = SQLOLEDBobjcn.ConnectionString = User ID=sa;Initial Catalog=his_test;Data Source=icebeanobjcn.Open If Not objcn.State = adStateOpen Then MsgBox 数据库异常或连接错误, vbAbortRetryIgnore, 出错 End Else MsgBox 欢迎您进入HIS系统, , 连接数据库成功 frmLogin.Show End IfEnd Sub在窗体frmlogin中完成当用户点击确定时,在数据库t_loginuser表中进行检索,若成功则进入,若失败则报错。连接三次不成功,自动退出系统。其实现代码如下: Dim Account As IntegerPrivate Sub cmdcancel_Click()Dim Str As StringStr = MsgBox(您好,您确定退出该系统管理吗?, vbQuestion + vbYesNo, 确认退出?)If Str = vbYes ThenEndEnd IfEnd SubPrivate Sub cmdOK_Click()Account = Account + 1 If Trim(txtUserName.Text = ) Then MsgBox 没有输入用户名称,请重新输入!, vbOKOnly + vbExclamation, 警告 txtUserName.SetFocus Else Set objrs = New ADODB.Recordset objrs.Open select * from t_loginuser where username= & txtUserName.Text & and pwd= & txtpwd.Text & , objcn, adOpenDynamic, adLockOptimistic, adCmdText If Not objrs.EOF Then Framain.Show Me.Hide ElseIf Account = 3 Then MsgBox 三次错误退出系统!, vbInformation, 输入错误 End Else MsgBox 帐号或密码错误!, vbInformation, 输入错误 End IfEnd IfEnd SubPrivate Sub Form_Load()Account = 0txtUserName.Text = txtpwd.Text = End Sub42 主窗体的设计421 功能分析 主窗体是系统中不可或缺的一部分,它可以完成与指定窗体进行链接,快速的进入所需模块的任务。422 设计原理利用VB知识,使指定的菜单选项与指定模块建立连接。423 界面设计 在当前工程中,添加MDI窗体,MDI窗体为多文档界面,且一个工程中只能有一个MDI窗体。利用“菜单编辑器”对该窗体进行编辑所需模块,并设置相应模块的名称。图4-3 菜单编辑器最后生成Framain主窗体,如图:图4-4 主窗体424 主窗体的实现主窗体的任务只是与各个子模块进行链接,不需要在数据库中进行处理。因此,在主窗体中设计以下代码即可:Private Sub 单击对象_Click() 获取鼠标单击事件 窗体名.Show 显示指定窗体 窗体名. ZOrder 0End Sub例如:Private Sub mChangeEmp_Click() frmLogin.ShowfrmLogin.ZOrder 0 End Sub 即只需单击菜单栏中名为mChangeEmp的菜单,则显示名为frmlogin的窗体。4.3 系统设置模块设计431 功能分析 系统设置主要完成更换操作员、修改密码和退出系统的操作,方便用户的更换以及保证用户使用系统的安全性。432 设计原理 更换操作员与已建立好的frmlogin窗体进行链接,无需建立新的窗体。当用户修改自身密码时,首先输入远密码,先在数据库中判断原密码是否一致,再输入新的密码,并经过确认。两次输入新密码不一样则报错。当新密码被修改并存入数据库后,则系统提示修改成功。433界面设计 在当前工程中建立名为changepwd的窗体,其界面和控件属性如下所示: 图4-5 界面设计窗体和控件主要属性如下表所示:控件属性属性设置changepwdcapation修改密码Text1nametxtpwdText2nametxtnewpwdText3nameconfirmpwdCommand1namecmdokcapation确定Command2nameCmdcancelcapation取消4.4 医院管理模块设计441 功能分析门诊管理系统:门诊管理系统是医院信息流的起点,主要完成病人身份登记、门诊挂号、门诊划价收费并生成费用清单等功能,以便用户进行核查。药房管理系统:药房管理系统应用于门诊药房、住院处各病区药房,主要完成窗口发药和各药房药品盘点、清查等工作。方便医院工作者对药品进行无重复劳动力的管理和药品的准确发放。药库管理系统:通过对药品的基本信息、入库、销售出库、盘点等信息的处理,完成对药品药库出入库明细、药品库存的综合管理。提高再次盘点药品的工作效率,减少药品过期、损耗所带来的经济损失。住院管理系统:通过对住院登记、住院划价收费、出院结算等信息的处理实现对住院病人的全面管理。并生成住院费用清单,方便用户核查。442 设计原理门诊管理系统:操作员对前来挂号的病人进行身份登记、挂号办理以及收费等工作,并把其信息存储至相应的数据库表中。对门诊收费项目要生成报表,产生收费明细单。药房管理系统:操作员主要完成应用于门诊药房、住院处各病区药房窗口发药和各药房药品盘点、清查等工作,把其信息存储至相应的数据库表中,并生成药房药品的信息明细报表和药房发药的处方明细单。药库管理系统:操作员完成对药库药品出入库的信息处理的工作,把其信息存储至相应的数据库表中,并生成相应的报表明细单。住院管理系统:操作员可以完成对住院病人在住院期间的信息处理工作,把其信息存储至相应的数据库表中,产生住院间费用明细单,对住院病人进行全面管理。443界面设计:(以门诊挂号为例)门诊管理系统:门诊管理系统分为三个子模块:门诊挂号(ClinicRegiseter)、门诊处方(ClinicList)、门诊收费(ClinicFee)。其界面如下所示: 图4-6 门诊管理系统控件属性属性设置ClinicListcapation门诊处方Text1nametxtpatientnumText2nametxtpatientnameComboBox1namecmbgendarText3nametxtmedicinenameComboBox2namecmbspecText4nametxtqualityComboBox3namecmbnumunitComboBox4namecmbdeptnameText5nametxtempnameCommand1namecmdsavecapation确定Command2nameCmdcancelcapation取消Command3nameCmdexitcapation退出窗体和控件主要属性如下表所示: 444 数据库设计与实现:(以门诊挂号为例)在数据库his_test中新建表t_ClinicRegister,并设计为挂号信息所存储的字段,如下:图4-7 挂号信息 在当前工程的模块下建立两个过程TransactSQL(ByVal SQL As String)和Function Testtxt(txt As String)。第一个过程是为了实现将利用所定义的SQL语句将所有信息写入数据库;第二个函数是为了实现判断输入信息内容是否为空,若为空的话,则提示错误。具体代码如下:定义Transactsql子过程:Public Sub TransactSQL(ByVal SQL As String)Dim objcn As ADODB.ConnectionDim strArray() As StringSet objcn = New ADODB.Connection 创建连接On Error GoTo TransactSQL_Error objcn.Provider = SQLOLEDB objcn.ConnectionString = User ID=sa;Initial Catalog=his_test;Data Source=icebean strArray = Split(SQL) objcn.Open 打开连接 objcn.Execute SQL 执行命令TransactSQL_Exit: Set objcn = Nothing Exit SubTransactSQL_Error: MsgBox 查询错误: & Err.Description Resume TransactSQL_ExitEnd Sub定义Testtxt函数Public Function Testtxt(txt As String) As Boolean If Trim(txt) = Then Testtxt = False Else Testtxt = True End IfEnd Function当用户在“门诊挂号”窗体中单击“保存”按钮时,要求把所输入的信息保存到t_ClincRegister表中。单击“取消”按钮时,清除所输入的所有内容,单击“退出”按钮时,退出子系统。实现代码如下:Private Sub cmdcancel_Click()txtpatientnum.Text = txtname = txtage = txtempname = txtyear = End SubPrivate Sub cmdexit_Click()Unload MeEnd SubPrivate Sub cmdsave_Click() Dim txtSQL$If Not Testtxt(txtpatientnum.Text) Then MsgBox 请输入病人编号!, vbOKOnly + vbExclamation, 警告 txtpatientnum.SetFocus Exit SubEnd IfIf Not Testtxt(txtname.Text) Then MsgBox 请输入病人姓名!, vbOKOnly + vbExclamation, 警告 txtname.SetFocusExit SubEnd IfIf Not Testtxt(cmbgendar.Text) Then MsgBox 请选择性别!, vbOKOnly + vbExclamation, 警告 cmbgendar.SetFocus Exit SubEnd IfIf Not Testtxt(txtage.Text) Then MsgBox 请输入年龄!, vbOKOnly + vbExclamation, 警告 txtage.SetFocus Exit SubEnd IfIf Not Testtxt(cmbfeecategory.Text) Then MsgBox 请选择费用类型!, vbOKOnly + vbExclamation, 警告 cmbfeecategory.SetFocus Exit SubEnd IfIf Not Testtxt(cmbregcategroy.Text) Then MsgBox 请选择挂号类别!, vbOKOnly + vbExclamation, 警告 cmbregcategroy.SetFocus Exit SubEnd IfIf Not Testtxt(cmbdeptname.Text) Then MsgBox 请选择科室名称!, vbOKOnly + vbExclamation, 警告 cmbdeptname.SetFocus Exit SubEnd IfIf Not Testtxt(txtempname.Text) Then MsgBox 请输入医生姓名!, vbOKOnly + vbExclamation, 警告 txtempname.SetFocus Exit SubEnd IfIf Not Testtxt(cmbempprof.Text) Then MsgBox 请选择医生职称!, vbOKOnly + vbExclamation, 警告 cmbempprof.SetFocus Exit SubEnd IfIf Not Testtxt(txtclinicemp.Text) Then MsgBox 请输入挂号员姓名!, vbOKOnly + vbExclamation, 警告 txtclinicemp.SetFocus Exit SubEnd IfIf Not Testtxt(cmbclinicfee.Text) Then MsgBox 请选择门诊费用!, vbOKOnly + vbExclamation, 警告 cmbclinicfee.SetFocus Exit SubEnd IfIf Not Testtxt(txtyear.Text) Then MsgBox 请输入挂号日期!, vbOKOnly + vbExclamation, 警告 txtyear.SetFocus Exit SubEnd IfIf Not IsNumeric(Trim(txtpatientnum.Text) Then MsgBox 病人编号请输入数字!, vbOKOnly + vbExclamation, 警告 Exit Sub txtpatientnum.SetFocusEnd IfIf Not IsDate(txtyear.Text) Then MsgBox 日期应输入日期格式(yyyy-mm-dd)!, vbOKOnly + vbExclamation, 警告 txtyear.SetFocusElse txtyear = Format(txtyear, yyyy-mm-dd)txtSQL = insert into t_clinicregister values( & Trim(txtpatientnum) & , & Trim(txtname) & , & Trim(cmbgendar) & , & Trim(txtage) & , & Trim(cmbfeecategory) & , & Trim(cmbregcategroy) & , & Trim(cmbdeptname) & , & Trim(txtempname) & , & Trim(cmbempprof) & , & Trim(txtclinicemp) & , & Trim(cmbclinicfee) & , & Trim(txtyear) & ) Call TransactSQL(txtSQL) MsgBox 保存成功!, vbOKOnly + vbExclamation, 警告 txtpatientnum.Text = txtname = txtage = txtempname = txtyear = txtpatientnum.SetFocus Me.HideEnd IfEnd Sub第五章 系统测试5.1 系统开发环境开发与运行环境会影响到数据库的运行,本系统的开发环境选择如下: 开发环境:Windows XP Professional SP2 开发工具:Micosoft Visual Basic 6.0 中文版 数据库管理系统:SQL Server 2000 数据访问技术:ActiveX Data Objects5.2 系统测试系统测试环境: 测试环境:Windows XP Professional 运行工具:SQL Server 2000 系统功能测试:功能测试是开发软件不可缺少的一步,对功能测试的结果将直接可以得出软件性能的优劣以及对软件以后运行中的维护。这里,我主要从系统登录、具体函数测试和后台的跟踪这三个方面,以图示的方式来说明,具体如下: 注:前台已和数据库连接成功 注:密码三次错误,退出系统注:当输入日期格式不正确时,提示错误 注:门诊挂号保存成功在SQL Server2000查询分析器里输入use his_testgo select * from t_clinicregister 第六章 结束语由于这是我第一次开发软件,而且是管理系统中最为复杂的HIS软件。通过这一次的开发,我彻底认清了我在经验、知识方面都存在着严重的匮乏。由于时间的仓促,技术的缺陷,在本系统中,我没有完成生成明细的报表。另外,在建立数据库和设计表的能力关联方面上,也需要进一步的加强。而在开发过程中,我不仅学到了关于技术和软件开发流程等方面的知识,更学到了学习新知识快速的学习方法,这将对我受益终身。本系统虽存在着经验和技术方面的不足,但它操作简单、界面友好、数据库管理容易、安全性高等不少优点也是不容忽视的,更重要的是它带给人的一种自信,是弥足珍贵的。参考文献1 夏邦贵 刘凡馨等,SQL Server数据库开发经典实例精解,机械工业出版社,2006年2 刘萌 周学明 郭安源,VisualBasic企业办公系统开发实例导航,人民邮电出版社,2003年3 王成强 马轲,新概念VisualBasic6.0教程,科学出版社,2003年4 李香敏,SQL Server2000编程员指南,北京希望电子出版社,2000年5 汪作文,软件工程,重庆大学出版社,2004年6 张凤琴,数据库原理及应用,北方交通大学出版社,2005年7 赵琼Visual Basic程序设计,中国劳动社会保障出版社 2003.068 周继良,图书分类学,武汉大学出版社,1992.069 申莉莉,数据库系统与Access教程清华大学出版社,2003.1210求是科技,VisualBasic教育信息化系统开发实例导航,人民邮电出版社,2003.06相关代码Option Explicit 注册表关键字安全选项.Const READ_CONTROL = &H20000Const KEY_QUERY_VALUE = &H1Const KEY_SET_VALUE = &H2Const KEY_CREATE_SUB_KEY = &H4Const KEY_ENUMERATE_SUB_KEYS = &H8Const KEY_NOTIFY = &H10Const KEY_CREATE_LINK = &H20Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + _ KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + _ KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL 注册表关键字 ROOT 类型.Const HKEY_LOCAL_MACHINE = &H80000002Const ERROR_SUCCESS = 0Const REG_SZ = 1 独立的空的终结字符串Const REG_DWORD = 4 32位数字Const gREGKEYSYSINFOLOC = SOFTWAREMicrosoftShared Tools LocationConst gREGVALSYSINFOLOC = MSINFOConst gREGKEYSYSINFO = SOFTWAREMicrosoftShared ToolsMSINFOConst gREGVALSYSINFO = PATHPrivate 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 LongPrivate 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 LongPrivate Declare Function RegCloseKey Lib advapi32 (ByVal hKey As Long) As LongPrivate Sub cmdSysInfo_Click() Call StartSysInfoEnd SubPrivate Sub cmdOK_Click() Unload MeEnd SubPrivate Sub Form_Load() Me.Caption = 关于 & App.Title lblVersion.Caption = 版本 & App.Major & . & App.Minor & . & App.Revision lblTitle.Caption = App.TitleEnd SubPublic Sub StartSysInfo() On Error GoTo SysInfoErr Dim rc As Long Dim SysInfoPath As String 试图从注册表中获得系统信息程序的路径及名称. If GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFO, gREGVALSYSINFO, SysInfoPath) Then 试图仅从注册表中获得系统信息程序的路径. ElseIf GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFOLOC, gREGVALSYSINFOLOC, SysInfoPath) Then 已知32位文件版本的有效位置 If (Dir(SysInfoPath & MSINFO32.EXE) ) Then SysInfoPath = SysInfoPath & MSINFO32.EXE 错误 - 文件不能被找到. Else GoTo SysInfoErr End If 错误 - 注册表相应条目不能被找到. Else GoTo SysInfoErr End If Call Shell(SysInfoPath, vbNormalFocus) Exit SubSysInfoErr: MsgBox 此时系统信息不可用, vbOKOnlyEnd SubPublic Function GetKeyV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论