毕业设计-《网吧收费系统》_第1页
毕业设计-《网吧收费系统》_第2页
毕业设计-《网吧收费系统》_第3页
毕业设计-《网吧收费系统》_第4页
毕业设计-《网吧收费系统》_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

目录前言需求分析2.1用户定位分析2.2功能需求分析2.3性能需求分析系统分析3.1环境平台分析3.2程序功能设计3.3程序流程设计详细设计4.1程序单元设计4.2程序单元编码4.3集成开发前言根据自己的爱好和软件编程的能力,我选择用VB编写网吧收费系统的服务器端,只是编写出了基本的功能,比现实生活中使用的要粗略.但是这个系统只是自己的一次实践,我会在以后的学习中继续努力的编写这个使用程序其意义在于锻炼了我的动手能力和逻辑思维能力,而且以前也从来没有尝试过编写这样综合性的程序,培养了对问题考虑的全面性.为了编写有实用价值的东西,我还参阅了大量的资料,包括网络资料的选择,当然在程序完成只后,也不能只有编写者才会用,所以要写出对应的帮助文挡,一般的软件都会有,这是我们生活中的常识.只是限于水平,只能编写部分功能,数据库安全方面也不可靠.一直在寻找解决办法,如果能够采用动态数据库,这些问题就能解决了.科学这东西讲究的就是严谨的态度,建立数学模型有助于完成设计,在设计的时候避免出现思绪混乱,在经过系统功能需求分析,在大脑中已经有很清晰的的目标,可以画出要进行的流程图,比如先根据功能模块确定好选择数据库,然后根据实际编写数据库表,完成数据库表的关联,可以先保存后,等窗体确定完毕,再连接数据库.经过代码调试,确定能正常运行.2.需求分析2.1用户定位分析合理的工具设置:用户要求界面简洁容易操作.于是可以使用工具条进行设置,把经常要使用的功能用工具条单独罗列出来,比直接在菜单中选择效率要高.安全要求:为了避免意外事件或者是人为原因导致数据库信息丢失,要做好数据库的保秘和数据库灾难性恢复.简单的操作方式:因为需要有的时候需要对客户机进行远程控制,这样管理起来就轻松起来.提供全面的数据查询和统计:可以任意选择查询条件,而且为了方便可以设置统计报表功能.报表打印导出功能:要随时可以导出以报表格式存放,打印出来长期备份.会员卡管理:会员卡较之现金交易比较方便管理,商品管理:能够对商品进行销售统计,存储查询.网址限制:现在网络病毒流行,尤其要注意一些不良网页上隐藏病毒,所以要限制一些网站.2.2功能需求分析主要功能:对网吧的人员,资源进行管理。公布网吧的通知公告等信息,发布网吧内外新闻动态,提供上网人员的意见、建议反馈场所,管理网吧内的计算机,对上机用户的情况进行统计,计时计费等。具体功能:被控制机有一个服务器,控制器集中在管理机上。可以控制登陆,并进行计时,这是两个基本功能;管理机还有上机,下机结帐,开机,关机,重新启动等功能。网络管理、计费系统:本网站最重要和最复杂的功能。又分会员注册,登录,以及会员的审核系统,员工的管理,计时计费,计算机管理等小系统。资源管理:分为流行歌曲,影视频道,游戏推荐,动漫Flash,精彩图片几个模块。交流平台:提供在线交流的平台,收集上网人员的相关的意见和建议,并及时处理,对有必要的问题进行回复。以上功能大部份为系统已实现的基本功能,在开发本系统时也为后继系统扩展开发留有接口,使系统更加方便地可以进行升级和扩展。2.3性能需求分析强大的安全保障:网络通讯全面采用数字证书认证体系,具有和网上银行同等的安全级别;基于角色的权限管理允许灵活定制管理权限;具有完备的数据保密、备份、灾难恢复等机制,保证数据高度安全可靠。严谨和高效的业务流程设计:网吧计费管理系统业务数据遵循财务准则设计,严谨、规范;众多独到的设计不仅方便顾客使用也大大减轻了服务员的工作强度。易于使用和维护:网吧计费管理系统充分考虑了不同层次使用者的接受能力,服务员经过10分钟简单培训就能掌握,管理人员则拥有众多工具和方法用于简化管理和维护。此外,为了帮助用户尽快熟练掌握网吧计费管理系统的使用,相关软件公司还提供了多种方式的培训和技术支持。集中管理能力:将配置、升级等任务集中到服务器处理,使管理工作大量减少,变得高效。系统分析3.1系统平台分析系统的开发、运行、测试环境均选用Windows系列的操作系统,因为Windows系统是PC机上普及最广泛的操作系统,它的界面友好、有高效的计算环境、对硬件的支持程度高、支持On-Now设备、有良好的可移植性和可伸缩性、系统运行稳定、可靠性好、维护方便、容易安装;性能经过优化、安全性好、对网络的支持程度好、使网络使用更为方便快捷。本系统可运行于Windows20000以上操作系统,在这些操作系统上都必须安装[IS,当然最好是在Windows2000AdvancedServer上运行,因为微软开发的Windows2000AdvancedServer是专门用来提供网络服务器的,有微软这个强大的技术支持,并且系统运行稳定、维护方便、性能经过优化、对网络的支持程度好、使网络使用更为方便快捷。考虑到WindowsXPProfessional是我们平时用得最多的操作系统,比较熟悉,且足够支持开发软件VB和MicrosoftSQLServer2000。所以在此我选用了它作为开发环境、运行环境以及测试环境.在选择开发工具的时候,考虑到各种编程软件,我选择VB6.0主要有其特点决定的,VB6.0提供了各种丰富的通信接口,比较适合这种服务器-客户端.在界面设置上,VB提供可视化编程,可以避免大量的代码编写,需要什么样子的窗口布局,可以直接在工具箱'里面选择,然后调整布局.采用的是事件驱动方式,代码执行的过程可以直接控制,很方便代码的调试和改写.比起传统的那些编程语言,代码从开始执行到代码结涑3.2程序功能设计系统功能设计:这一部分是整个系统最基本也是最重要的设置,其中系统设置至少包括以下几方面的内容:计算机设置:管理员设置数据备份数据还原系统设置记费用功能设计:包括下面内容开始记费限定时间结帐调换计算机选购计算机客户机控制界面设置功能:主要是对运行中的系统界面设置,不同的工作人员喜欢不同的背景或布局格式,对整个系统没有太大的影响管理功能:包括商品资料管理,客户管理,会员卡管理统计功能:日报表统计:商品统计和上机统计月报表统计:商品统计和上机统计3.3程序流程设计数据库设计(采用无源数据库连接)无源数据库”连接也并不是说不需要数据源,如果没有数据源则连接是纸上谈兵,只是不需要配置ODBC数据源,利用ADO就可通过代码进行连接。1.1ADO(ActiveXDataObject)在VisualBasic6.0中,数据访问接口有三种:ActiveX数据对象(ADO)、远程数据对象(RDO)和数据访问对象(DAO)。这三种接口的每一种都分别代表该技术的不同发展阶段,最新的是ADO,它比RDO和DAO更加简单,更加灵活。对于新工程,应使用ADO作为数据访问接口。ADO是Microsoft数据库使用程序开发的接口,是建立在OLEDB之上的高层数据库访问技术。它封装了OLEDB所提供的接口,比起OLEDB提供者,ADO的接口可以使程序员在更高级别上进行数据交互。ADO技术不仅可以使用于关系数据库,也可以使用于非关系数据库。可以用统一的方法对不同的文件系统进行访问,大大简化了程序编制,增加了程序的可移植性。1.2建立无源数据库连接在连接数据库前,首先要在VisualBasic6.0菜单中“工程”一“引用”中选择MicrosoftActiveXDataObjects2.6Library和MicrosoftActiveXDataObjectsRecordset2.6Library这两个组件。运用ADO对象模型的主要元素:Connection(连接)中的ConnectionString属性进行连接,ConnectionString为可读写string类型,指定一个连接字符串,告诉ADO如何连接数据库。实例:以建立登陆系统为例,介绍无源数据库连接。在MicrosoftSQLServer2000中建立一个Student的数据库,在Student数据库中建立login_user(name,password)的数据表,MicrosoftSQLServer服务器的名为data_server。代码如下:OptionExplicitPublicLoginSucceededAsBoolean'引用MicrosoftActiveXDataObjects2.6Library'定义连接对象和记录集DimconnAsADODB.ConnectionDimrsAsADODB.Recordset'对取消按钮单击事件的响应PrivateSubcmdCancel_Click()'设置全局变量为false'不提示失败的登录LoginSucceeded=FalseMe.HideEndSub'对登录按钮单击事件的响应PrivateSubcmdOK_Click()Setconn=NewADODB.ConnectionSetrs=NewADODB.Recordset'建立无源数据库连接conn.ConnectionString="driver={sqlserver};server=data_server;uid=sa;pwd=;Database=studentconn.ConnectionTimeout=50conn.OpenDimstrAsString'连接连接对象Setrs.ActiveConnection=conn'设置游标类型rs.CursorType=adOpenDynamicIfTrim(txtUserName.Text="")ThenMsgBox”用户名不能为空,请重新输入用户名!”,vbOKOnly+vbExclamation,”警告”txtUserName.SetFocusElse'设置查询字符串str="select*fromlogin_userwherename='"&Trim(txtUserName.Text)&"'"rs.OpenstrIfrs.EOF=TrueThenMsgBox"没有这个用户,请重新输入用户名!",vbOKOnly+vbExclamation,警告"txtUserName.SetFocusElse'登录成功,连接主窗口If(Trim(txtPassword.Text)=Trim(rs.Fields("password")))ThenLoginSucceeded=TrueMe.Hidemain.ShowElseMsgBox”密码不正确,请重输入密码!”,,"警告”txtPassword.SetFocusSendKeys"{Home}+{End}"EndIfEndIfEndIfEndSub无源数据库连接则不用配置ODBC环境,可以省去手工设置DSN的麻烦,这种方法所编写的软件适应性广,又符合专业软件的要求。DO封装并且实现了Microsoft强大的数据访问接口OLEDB的所有功能,它具有通用性好,效率高的特点。通过ADO进行无源数据库连接,省去手工设置DSN的麻烦,使ADO对象模型获得更大的灵活性.界面设置确定使用程序的功能后,从最基本的界面布局设置,这一步的关键就是熟悉VB控件的基本功能,包括常用控件和其它需要从部件里面添加的控件.界面设置要合理,美观为好.代码编辑VB采用的是事件驱动方式,可以直接选择控件的事件和属性,在编写代码的时候会自动给予提示,这样当对一个事件进行代码编辑的时候如果没有给予格式提醒,这个时候要考虑是不是出错了,如果没有这种功能,这种错误只能到代码编译运行的时候才会发现,那个时候会浪费很多时间来修改错误代码.模块建立模块一般是放全局公用的函数、过程、常数、自定义结构、全局变量等等东西的地方,也就是公用部分的集中场所。当然,模块中也可以定义private的函数或者过程以便公用过程的内部调用。类模块是定义一个类,类模块中的所有public成员必须在创建了累的实例以后才能够调用,需要和标准模块区分开来。好的编程习惯是把不同种类的功用模块分类放在不同的标准模块中,便于查阅,所以很多程序中会有多个标准模块存在.类模块和标准模块的不同点在于存储数据方法的不同。标准模块的数据只有一个备份。这意味着标准模块中一个公共变量的值改变以后,在后面的程序中再读取该变量时,它将得到同一个值。而类模块的数据,是相对于类实例(也就是,由类创建的每一对象)而独立存在的。同样的,标准模块中的数据在程序作用域内存在,也就是说,它存在于程序的存活期中;而类实例中的数据只存在于对象的存活期,它随对象的创建而创建,随对象的撤消而消失。最后,当变量在标准模块中声明为Public时,则它在工程中任何地方都是可见的;而类模块中的Public变量,只有当对象变量含有对某一类实例的引用时才能访问运行调试运行程序运行程序,可用下列方法之一:选择主窗口的“运行”菜单的“启动”命令。按快捷键F5。选择工具栏上的启动按钮。在程序运行过程中,标题栏显示:工程1-MicrosoftVisualBasic[运行]表示进入运行状态。暂停运行若程序有错误,可用以下任一种方式进入中断状态,对程序进行调试:选择“运行”菜单的“中断”命令。按Ctrl+Break键。选择工具栏上的中断图标。进人中断状态,标题栏显示:工程1-MicrosoftVisualBasic[break]若要继续运行,可直接按F5键,或选取“运行”菜单的“继续”命令。若要重新运行,按Shift+F5键或选择“运行”菜单的“重新启动”命令。3.结束程序运行结束程序运行返回设计状态的方法为:选择“运行”菜单的“结束”命令。选择工具栏上的结束图标。按程序的结束按钮或程序窗口的关闭按钮详细设计4.1程序单元设计登陆窗口设计:登陆系统窗口界面要简单为好,需要两个标签框用来标明用户名和密码,两个文本框用来输入用户名和密码,还有两个命令按扭用来实现登入和取消命令:根据需要添加ACTIVEXActiveX控件数据输入和函数功能执行都必须通过容器,因此ActiveX控件和容器都必须支持一些特定的接口协议。根据Microsoft相应的规格标准,ActiveX控件应具备如下的性能机制。属性和方法:ActiveX控件必须提供属性的名称、方法的名称及参数,通过这项机制容器可以存取和改变ActiveX控件的属性参数。事件:ActiveX控件由这项机制通知容器在ActiveX控件中发生的事件,比如属性参数的改变,用户按下鼠标左键等。存储:容器由这项机制通知ActiveX控件存储和提取有关信息数据等。ActiveX控件只要在Windows的Registry数据库中注册后,就可以像其他Windows使用程序一样发挥各自的功能。ActiveX控件是一个模块化的灵活对象,如果某个使用程序或网页需要增加一项特殊的功能,无须重写整个程序,只要灵活地插入一个具有此项功能的ActiveX控件即可实现。ActiveX的优势还在于它的动态可交互性,用户可以动态地在使用过程中,通过改变它的属性和参数,在使用程序中实现自己的特殊要求。也许有的读者会问:目前在市面上可以找到各种各样现成的ActiveX控件,还有没有必要自己创建ActiveX控件呢?关于这个问题很容易解释,现有的控件种类是很多,功能也比较齐全,问题是有许多时候会遇到这种情况:使用现成的控件虽能完成任务,但自己需要的一些特性(属性、事件或方法)该控件却没有提供,还需要自己手工写代码来实现,而这些特性偏偏在自己的使用系统中又经常会用到,为了避免大量的重复劳动,一劳永逸的办法就是在创建自己的ActiveX控件。目前可以使用VisualBasic或其它开发工具创建ActiveX控件。无论按照哪种标准,VisualBasic都是计算机历史上最为成功的(同时也是最流行的)编程语言,其中最令人兴奋的特性就是可以创建用户自己的控件并可以像其他控件一样使用于支持ActiveX控件技术的使用程序中。下面通过一个具体实例来阐述如何在VisualBasic6.0(中文企业版)下进行ActiveX控件创建。\4.2.程序单元编码1.登陆窗口代码:rivateSubcmdOK_Click()'检查正确的密码WithfrmMain.Data8.Recordset.MoveFirstFori=1To.RecordCountIfCombo1.Text=.Fields('用户名称")AndtxtPassword=.Fields('用户密码”)ThenLoginSucceeded=TrueUserName=.Fields("用户名称”)UserPass=.Fields("权限”)ExitForEndIf.MoveNextNextiIfLoginSucceededThen'将代码放在这里传递'成功到calling函数'设置全局变量时最容易的UnloadMeElseMsgBox”无效的密码,请重试也,”登录”txtPassword.SetFocusSendKeys"{Home}+{End}"EndIfEndWithEndSubPrivateSubForm_Load()OnErrorResumeNextWithfrmMain.Data8.Recordset.MoveFirstFori=1To.RecordCountCombo1.AddItem.Fields("用户名称”)Combo1.ItemData(Combo1.NewIndex)=.AbsolutePosition.MoveNextNextiEndWith管理员模块代码DimaaAsLongPrivateSubCombo1_Click()Command4.Enabled=TrueEndSubPrivateSubCommand1_Click()'添加用户OnErrorResumeNextIfCommand1.Caption="添加用户”ThenListView1.Visible=FalseFrame1.Visible=TrueText1.Text=""Text2.Text=""Text3.Text=""Text4.Text=""Combo1.Text=Combo1.List(0)Command2.Enabled=FalseCommand3.Enabled=FalseCommand4.Enabled=TrueCommand1.Caption="放弃添加”ElseListView1.Visible=TrueFrame1.Visible=FalseCommand2.Enabled=TrueCommand3.Enabled=TrueCommand4.Enabled=FalseCommand1.Caption="添加用户”EndIfEndSubPrivateSubCommand2_Click()'编辑用户OnErrorResumeNextWithfrmMain.Data8.RecordsetText1.Text=.Fields('用户名称”)SelectCase.Fields("权限”)Case"A"Combo1.Text=Combo1.List(0)Text2.PasswordChar=""Text3.PasswordChar=""Text4.PasswordChar=""Text2.Text=.Fields("用户密码”)Text3.Text=.Fields("用户密码”)Text4.Text=.Fields("用户密码”)Case"B"Combo1.Text=Combo1.List(1)Text2.PasswordChar=""Text3.PasswordChar=""Text4.PasswordChar=""Text2.Text=.Fields("用户密码”)Text3.Text=.Fields("用户密码”)Text4.Text=.Fields("用户密码”)Case"C"Combo1.Text=Combo1.List(2)Text2.PasswordChar=""Text3.PasswordChar=""Text4.PasswordChar=""Text2.Text=.Fields("用户密码”)Text3.Text=.Fields("用户密码”)Text4.Text=.Fields("用户密码”)Case"D"Text2.PasswordChar=Text3.PasswordChar=Text4.PasswordChar=Text2.Text=""Text3.Text=""Text4.Text=""Combol.Text=Combo1.List(3)EndSelectEndWithIfCommand2.Caption="修改用户”ThenListView1.Visible=FalseFrame1.Visible=TrueCommand1.Enabled=FalseCommand3.Enabled=FalseCommand4.Enabled=FalseCommand2.Caption="放弃修改”ElseListView1.Visible=TrueFrame1.Visible=FalseCommand1.Enabled=TrueCommand3.Enabled=TrueCommand4.Enabled=FalseCommand2.Caption="修改用户”EndIfEndSubPrivateSubCommand3_Click()'删除用户OnErrorResumeNextWithfrmMain.Data8.RecordsetIfMsgBox("确实要删除用户:"&.Fields("用户名称”)&"吗?”,vbYesNo+vbQuestion)=vbYesThenIfErr<>0ThenExitSubIf.Fields("权限”)="D"Thenmm=InputBox("请输入密码:")Ifmm=.Fields("用户密码")And.Fields("用户名称")<>UserNameThen.DeleteListView1.ListItems.ClearForm_LoadElseMsgBox”不能删除用户!”,vbCriticalEndIfElse.DeleteListViewl.ListItems.ClearForm_LoadEndIfEndIfEndWithEndSubPrivateSubCommand4_Click()'保存设置OnErrorResumeNextIfTrim(Text1.Text)=""ThenMsgBox”用户名错误!”,vbCriticalText1.SetFocusExitSubEndIfWithfrmMain.Data8.RecordsetIfText3.Text<>Text4.TextThenMsgBox"前后密码设置不一至,请重新输入!",vbCriticalText3.Text=""Text4.Text=""Text3.SetFocusExitSubEndIfaa=.AbsolutePosition.MoveFirstFori=1To.RecordCountIf.Fields("用户名称")=Text1.TextThenIf.AbsolutePosition<>aaThenMsgBox"用户名已经存在了,请你再换一个!",vbExclamation.MoveFirst.MoveaaText1.SetFocusText1.SelStart=0Text1.SelLength=Len(Text1.Text)ExitSubEndIfEndIf.MoveNextNexti.MoveFirst.MoveaaIfCommandl.Caption="放弃添加”Then.AddNewElseIfText2.Text<>.Fields('用户密码”)ThenMsgBox”密码错误,请重新输入!”,vbCriticalText2.Text=""Text3.Text=””Text4.Text=""Text2.SetFocusExitSubEndIf.EditEndIf.Fields(”用户名称")=Textl.Text.Fields(”用户密码”)=Text3.Text.Fields(”权限”)=Left(Combo1.Text,1).UpdateEndWithIfErr<>0ThenMsgBoxError:ExitSubListViewl.Visible=TrueFramel.Visible=FalseCommandl.Enabled=TrueCommand2.Enabled=TrueCommand3.Enabled=TrueCommand4.Enabled=FalseCommandl.Caption="添加用户”Command2.Caption="修改用户”ListViewl.ListItems.ClearForm_LoadEndSubPrivateSubCommand5_Click()UnloadMeEndSubPrivateSubForm_Load()OnErrorResumeNextWithfrmMain.Data8.Recordsetaa=.AbsolutePosition.MoveFirstFori=1To.RecordCountListView1.ListItems.Addi,,.Fields('用户名称”)'ListView1.ListItems(i).SubItems(1)=.Fields('用户密码”)ListView1.ListItems(i).SubItems(1)="********"SelectCase.Fields("权限”)Case"A"ListView1.ListItems(i).SubItems(2)="A—记费员”Case"B"ListView1.ListItems(i).SubItems(2)="B—操作员"Case"C"ListView1.ListItems(i).SubItems(2)="C—管理员"Case"D"ListView1.ListItems(i).SubItems(2)="D—超级管理员"EndSelect.MoveNextNexti.MoveFirst.MoveaaEndWithEndSubPrivateSubForm_Resize()OnErrorResumeNextListView1.Move30,10,Me.Width-150,Me.Height-1200Picture1.Top=ListView1.Top+ListView1.Height+100Picture1.Left=(Me.Width-Picture1.Width)/2EndSubPrivateSubLabel5_Click()EndSubPrivateSubListView1_ItemClick(ByValItemAsMSComctlLib.ListItem)'OnErrorResumeNextWithfrmMain.Data8.Recordset.MoveFirst.MoveItem.Index-1EndWithEndSubPrivateSubText1_Change()Command4.Enabled=TrueEndSubPrivateSubText2_Change()Command4.Enabled=TrueEndSubPrivateSubText3_Change()Command4.Enabled=TrueEndSubPrivateSubText4_Change()Command4.Enabled=TrueEndSub4.3集成开发窗体和代码都设置完毕,就可以运行调试了,当然有共同点的窗体可以借用模块来设计.这里设置两个模块来节省代码执行时间,并不会影响到系统本身的功能:打开VB程序菜单下的工具一模块,打开创建模块窗体,名字为MODULE1,可以使用默认的名称.模块其实也就是代码窗体,只不过这个窗体是功用的,涉及其它窗体的功能,这样在出现错误的时候代码改写很方便.模块代码:PublicUserNameAsStringPublicUserPassAsStringPublicDeclareFunctionGetWindowsDirectoryLib"kernel32"Alias"GetWindowsDirectoryA"(ByVallpBufferAsString,ByValnSizeAsLong)AsLong'PublicDeclareFunctionSetWindowPosLib"user32"(ByValhwndAsLong,ByValhWndInsertAfterAsLong,ByValXAsLong,ByValYAsLong,ByValcxAsLong,ByValcyAsLong,ByValwFlagsAsLong)AsLongPublicDeclareFunctionGetShortPathNameLib"kernel32"Alias"GetShortPathNameA"(ByVallpszLongPathAsString,ByVallpszShortPathAsString,ByValcchBufferAsLong)AsLongTypeLwinsockIpAsStringIndexAsLongJSJAsLongEndTypePublicIndexSock()AsLwinsockTypeIChatUserNameAsStringSexAsStringUsedAsBooleanEndTypePublicIChatUser()AslChatUserDeclareFunctionGetWindowTextLib"user32"Alias"GetWindowTextA"(ByValhWndAsLong,ByVallpStringAsString,ByValcchAsLong)AsLongDeclareFunctionEnumWindowsLib"user32"(ByVallpEnumFuncAsLong,ByVallParamAsLong)AsLongDeclareFunctionPostMessageLib"user32"Alias"PostMessageA"(ByValhWndAsLong,ByValwMsgAsLong,ByValwParamAsLong,lParamAsAny)AsLongDeclareFunctionBringWindowToTopLib"user32"(ByValhWndAsLong)AsLongPublicDeclareFunctionCopyFileLib"kernel32"Alias"CopyFileA"(ByVallpExistingFileNameAsString,ByVallpNewFileNameAsString,ByValbFailIfExistsAsLong)AsLongPublicDeclareFunctionSetCursorPosLib"user32"(ByValXAsLong,ByValYAsLong)AsLongDeclareFunctionSystemParametersInfoByRefLib"user32"Alias"SystemParametersInfoA"(ByValuActionAsLong,ByValuParamAsLong,lpvParamAsAny,ByValfuWinIniAsLong)AsLongDeclareFunctionSetWin

温馨提示

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

评论

0/150

提交评论