VB编程(共10篇)
1.VB编程 篇一
课
题:vb语言编程概述 课 时:2课时 授课时间:2011.09.05 课堂类型:讲授
教学目的:1.熟悉VB界面和VB集成开发环境;
2.在实际操作中学会编简单的VB应用程序;
教学要求:1.掌握VB基础知识。
2.会编简单的VB应用程序。
教学重点:1.熟悉VB集成开发环境
2.编写简单VB应用程序。
教学难点:在熟悉VB界面的同时学习编写简单VB应用程序 教学方法:讲授 教学过程:
一、VB简介
BASIC是英文Beginner’s All-purpose Symbolic Instruction Code(初学者通用符号指令代码)的缩写,它是专门为初学者设计的高级语言。Visual Basic是Microsoft公司于1991年推出的基于窗口的可视化程序设计语言。
a.“Visual”是“可视化的”、“形象化的”的意思。b.因此Visual Basic也具有易学易用的特点
c.目前Visual Basic的最新版本是Visual Basic 6.0(简称VB 6.0)
二、启动VB
1、首先显示“新建工程”对话框
直接单击“打开”按钮,创建“标准EXE”类型应用程序,进入集成开发环境主界面。
2、集成开发环境中的各元素 1)标题栏:用来显示窗口的标题。2)菜单栏 3)工具栏 4)工具箱 5)窗体窗口 6)工程窗口 7)属性窗口 8)窗体布局窗口
三、通过一个简单的应用程序快速入门
【例1.1(实训1,p16)】制作一个的一个简单的应用程序的运行界面。它由一个窗体、一个文本框、一个标签和一个命令按钮组成。当用户单击命令按钮“显示”时,文本框中出现“教你学VB”。1.新建工程 2.添加文本框Text1 3.添加命令按钮Command1 4.添加标签Label1 5.设置属性 6.编写事件过程代码
前面的工作把应用程序的界面设计好了,属性也设置完毕。但现在应用程序并不能实现实际的功能。为了使它具有一定的功能,还必须为对象编写实现某一功能的事件过程代码。1)双击窗体上的“显示”按钮,屏幕上出现代码窗口,程序代码就在这里编写。编写如下事件过程:
Private Sub Command1_Click()Text1.Text = “欢迎使用VB” End Sub 2)运行应用程序 3)保存应用程序
VB应用程序至少有两种文件需要保存: · 窗体文件(.frm)· 工程文件(.vbp)4)生成EXE文件
四、总结步骤
设计VB应用程序主要有以下4个步骤:(1)设计用户界面。(2)设置属性。(3)编写代码。(4)保存和运行调试程序,生成EXE文件。
五、知识延伸
1、只有一个文本框的实例 编写如下事件过程:
Private Sub Command1_Click()Text1.Text = “教你学VB“ End Sub
2、多个文本框时 编写如下事件过程:
Private Sub Command1_Click()Text1.Text = ”教你学VB“ Text2.Text = “欢迎使用VB“ End Sub
3、按照系统的元件特性分类(分别举例说明)课后实训1 第二个命令按钮:清除 第三个命令按钮:退出 步骤:
1.添加2个命令按钮 2.双击按钮,进入编程状态 3.和显示按钮命令编程相似 编写如下事件过程: Private Sub Command2_Click()Text1.Text = ” “ End Sub Private Sub Command3_Click()End End Sub
4、图片的加载方法
Private Sub Form_Load()Image1.Picture = LoadPicture(App.Path + “1.BMP”)End Sub
六、小结 1.熟悉界面。
2.掌握完整编程过程以及运行及调试程序的过程。
2.VB编程 篇二
前几天, 上小学四年级的儿子指着试卷上的一个填空题, 问我怎么做, 题目描述:“用4、5、6、7、8这五个数组成一个两位数和一个三位数, 乘积最大是 ( ) , 乘积最小是 ( ) ”。初一看好像是很简单的一道题, 我和妻子两个人想当然地找出了多个组合, 可马上都被自己的新发现打破, 百思不得其解。于是, 又上网搜索相关问题, 得出各类答案与解决方案, 但都有一些缺陷, 有些规则看似有用, 但当把题中的五个数字更换为其他数时, 规则又不一定适用。其间, 我们虽然已找到了最大值和最小值, 但却不知道是不是恰当的答案。于是, 我想到设计一个程序, 用程序来解决这个问题, 并试图在此基础上找到解答此类问题的规则。
●算法分析
此类问题, 在找不出明显的规则之前, 只有通过穷举法罗列出符合要求的全部组合, 计算出每个组合的最大值与最小值, 将每个组合的组合规则记录到规则数组中, 当穷举完所有的组合后, 整理规则数组, 去除重复的值, 也就是组合规则, 然后可以找出最大值组合与最小值组合的规律。因为此类题很少出现0这个数, 所以我设计时只用了1~9这九个数, 总结出来的规律可适用于有0出现求最大乘积的情况, 求最小乘积的情况要稍作变通。描述算法如下:
1本程序通过嵌套循环, 从1~9这九个数中选取随机五个不重复的数, 作为题干中要求的五个个位数, 并列出所有可能出现的组成一个两位数和一个三位数的组合。
2在1循环中, 每次找到符合要求的五个个位数后, 将其分别填入五个文本框中, 并均作如下运算, 先采用冒泡法, 对这五个数进行从小到大排序, 并依次填回五个文本框中。然后对用于存放乘数、乘积及数值组合规则的四个数组进行重定义, 以便能够存储新得到的六个数及两个数值组合规则。然后对刚取得的五个个位数进行操作, 通过嵌套循环, 分别将任意两个或三个组成一个数, 再将剩下的三个数或两个数组成另一个数, 连同所得到的两个乘积及数值组合规则一起存入数组。当这五个个位数的所有可能组合均运算成功并存入相应数组后, 从乘积数组中找出最大值和最小值, 以及与之相对应的两组乘数和数值组合规则, 输出到富文本框RB1, 同时将数值组合规则写入最大值规则与最小值规则数组str_gzb () 中。
3判断1循环是否符合循环要求, 如果符合, 再进入下一次循环。如果已完成所有符合要求的组合的运算, 则退出循环。
4去除规则数组str_gzb () 中重复项, 统计出最大值和最小值的组合规则。也可以将得要的结果拷贝到Excel中, 手工统计组合规则。
5数值组合规则规定如下:五个数字中最小的数所处的位置用A表示, 最大的数所处的位置用E表示, 其他类推。如题干中的4、5、6、7、8五个数, 组成一个两位数47, 其取值规则就是AD, 组成一个三位数568, 其取值规则就是BCE, 在取值规则数组中记录为“ADBCE”。
●VB程序设计过程
在有了比较完善的算法分析之后, 我利用VB程序进行了设计。过程为:
1在VB中建立一个工程, 增加一个窗体form1。
2在窗体中 添加数组 控件text1 (0~4) 、command1、Richtextbox1等控件, 并设置command1控件的Caption属性为“开始计算!”, 设置Richtextbox1控件的名称为“RB1”, 调整各控件到适当位置。
3添加窗体load代码, 声明所要用到的各个动态数组, 在command1中添加运算过程代码, 添加用于记录所选取数值组合规则的过程GL的代码。
4运算测试, 修缮程序。
5将工程输出为可执行文件。
●源码
利用VB程序设计完成后, 所有的源代码也一一完成, 清晰地展现了利用此程序进行数学运用、算法分析的过程。部分源代码如下。
●运行测试
设计完此程序后, 我进行了测试, 因为运算量大, 程序运行时间一般需要一个小时以上, 程序也可能出现假死现象, 只要耐心等待即可。运行结果如下图 (图片根据运行结果进行了拼接) 。
由分析结果可以看出, 此类问题的组合规则如下:将最大数作为两位数的十位, 第四大数作为两位数的个位, 将第二大数作为三位数的百位, 第三大数作为三位数的十位, 最小数作为三位数的个位, 这样组合出来的两位数和三位数乘积最大;将最小数作为两位数的十位, 第三大数作为两位数的个位, 将第四大数作为三位数的百位, 第二大数作为三位数的十位, 最大数作为三位数的个位, 这样组合出来的两位数和三位数乘积最小。
●思考
作为一款经典的高级程序设计语言, VB的生命力依然旺盛, 依然可以作为中小型程序的首选语言。
摘要:VB是常用的程序设计语言, 简捷、易用, 运行稳定, 运行效率较高。在数学教学中, 常遇到一些逻辑复杂, 个例较多, 难于归纳总结的问题, 教师在准备与讲析这些问题的时候很难找到解决思路, 无所适从。笔者将这些问题通过VB编译成程序来运行处理, 可以充分发挥计算机的优势, 迅速解决这些数学难题。
3.VB编程 篇三
关键词:信息技术;VB;神州飞船
中图分类号:G427 文献标识码:A 文章编号:1992-7711(2014)22-094-1
一、教学设想
VB编程为八年级《信息技术》教学中的重要内容,重点为培养学生运用程序解决实际问题的能力。以前本章节内容为九年级的选修内容,一般情况下大多数学校都不教授,2013年江苏省《信息技术》课程教学大纲把这个章节内容列为必修内容,同时放在八年级教授。但本章节内容对于八年级的学生来说比较难,因此如何把这个章节教好也比较困难。笔者紧扣教学大纲,从现实生活出发,以科学、数学知识为基础,用“神舟飞船”运行七个阶段中的发射、变轨、回收三个阶段来作为课堂教学的线索,选用当前发生的事件、学生较感兴趣,与现实生活密切联系。用“飞船发射”体现程序的魅力;“飞船的变轨”使用掌握飞船的运行轨迹、程序代码的认识、程序的运行和修改、调试;“飞船的回收”让学生自已分析程序(抛物线)、运行、保存。整堂课通过VB对程序进行简单修改、程序代码的初步认识,体验利用计算机完成某一特定任务,领悟程序设计的简单原理和方法,体验程序设计运行过程,培养学生科学态度,做事的严谨性。
二、教学过程设计
(一)课程导入——回顾神九与天宫的交汇对接
引出课题;用程序来模拟神州飞船的发射、运行、回收三个过程。
(二)课程演示——模拟火箭发射的程序运行
演示发射程序,模拟演示中国航天发射情况,介绍程序的用法。
让学生试着运行程序,体验程序运行过程。
(三)课程内容剖析——VB源程序的认识、运行,完成”飞船变轨”源代码参数调整
1.介绍窗体的打开、运行、停止。
2.剖析程序。
(1)对程序中的源代码每行进行剖析,同时后面有注释。
(2)程序的设计原理(算法)是椭圆的运行;分析a,b在程序的中作用;当a=b时,运行的轨道是圆。
(3)按钮的代码修改、程序的运行。
3.演示“飞船变轨”程序的修改、运行。
4.让学生体验过程(相互讨论、交流)。
任务:神九上天后,前5圈是椭圆轨道,以后是圆形轨道。请你把飞船先调整到红色的椭圆轨道,然后再调整到圆形轨道。
(运行程序,看运行结果,亲身感受计算机程序解决问题的过程,懂得计算机程序设计的基本流程,能修改源程序,并运行出结果)
(四)知识拓展训练——神州飞船的回收
打开“回收飞船”的程序,分析飞船的回收是一个抛物线运动。让学生自己分析,找到飞船回收最佳着落位置。(检查学生程序修改运行的情况、自主学习和互帮互助的情况)。
(五)教学点评
1.利用多媒体教学软件,收取学生的作品。
2.交流评讲学生的回收飞船的作品。
3.让学生回顾设计回收的程序的步骤。
(教师提示:分析问题,设计算法,编写程序 调试运行 检测结果)
(六)课程总结
让学生认识到生活中很多问题都可以用计算机程序来解决,同时还能够结合其他课程的知识,感受程序解决问题的魅力。学生分小组交流讨论:
1.谈谈你对VB编程的认识?
2.对未来的中国航天事业发表你的见解?
最后老师提出希望:你们中会有人将来设计的软件在千家万户的电脑中使用;联系实际,让他们懂得中国航天技术与俄美的差距,通过大家的努力,有一天你们当中有人能登上月球或者火星。
三、教学反思
(一)以航天知识与程序设计紧密结合,培养学生热爱科学、了解科学的能力
编程序写在学生眼里是高深莫测,是非常聪明的人或程序员才写的东西,一般都认为程序比较难学,有畏惧感。为给他们有感性的认识,联系实际,用神州飞船的发射、变轨、回收三个阶段写成程序贯穿本堂课;既有科学知识、又有简单初步的程序思想内容。变轨当中渗透了实际运行的轨迹、飞行圈数、飞船的重量,从前几圈椭圆到圆的变轨;飞船降落中渗透了抛物线的应用。在教学中,让学生主动探究飞船回收的程序,让学生了解程序模拟实际实验的过程。培养学生科学发展观,了解中国航天的成就,让学生有为中国航天事业添砖加瓦的愿望。
(二)利用学生之间的资源差异,培养学生相互间的共同学习能力
在进行飞船调轨操作时,需要用到VB软件、程序代码的修改、椭圆方程的认识,最终实现飞船的轨道的调整。以小组为单位,把信息技术操作能力较强的学生分散安排到各个小组,遇到学习问题首先在组内研究解决,其次才求助于别的小组。使学生之间形成互教互学,不但学习效果好而且培养了团队协作精神,学生之间通过交流、协作、对知识认识的表述等活动,使学习得到进一步的深化、扩展,创造了与他人的协作化和知识共享的条件,实现了学习者的形成性学习。
(三)运用信息技术拓展思维空间,培养学生的创新精神
4.VB编程 篇四
1、 VB编程技术的简介
1)VB编程技术的概念。
VB是Visual Basic的缩写,是由微软公司开发的一种可视化的程序设计语言。目前,VB是在世界上被人们使用最多的一种语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。VB是由传统即基础语言而衍生出来的新的语言,VB语言照比传统语言更加的方便和快捷。
2)VB编程技术的发展史。
VB编程技术是由微软公司在1991年推出的,VB编程技术的最初的设计者是阿兰·库珀。VB编程的推出在当时的社会中引起了很大的轰动,人们认为这种可视性的编程语言对于软件的开发历史来讲具有跨时代性的作用。VB编程技术开创了一个新的纪元。在接下来的四年里,VB2.0、VB3.0、VB4.0三个版本应运而生从VB 3.0开始,微软将Access的数据库驱动集成到了VB;从VB 4.0开始,VB也引入了面向对象的程序设计思想。2002年,微软公司将.NET Framework与Visual Basic结合而成为Visual Basic。在之后,基本上VB编程技术每年都会进行版本的更新,每次都会加入更加强大和多样化的技术。随着版本的更新,VB编程技术越来越方面,功能越来越强大,已然成为了现代社会工作中不可缺少的帮手。VB编程技术的应用也变得越来越广泛了。
5.用VB编写投注程序VB 篇五
时下全国各地都在搞“电脑型福利彩票”,相信很多读者朋友都参与过或正准备参与吧,笔者也是一个“彩民”,已为中国福利事业贡献了XXX元了,不过好像运气不怎么好,至今连个末等奖也未中到。在投注时,彩号可以自己在投注单上选,也可以通过投注机随机选取。那么,想不想自己编个程序来模拟“机选”呢?好!那就接着往下看吧!
首先,新建一个单窗体的工程,在上面画出七个TEXTBOX,最好是一个控件数组,这样编程时容易控制,再建一个COMMOND BUTTON,将CAPTION改为“随机产生”。在程序运行后,每点击一下COMMAND1,将随机产生一组数字并按从小到大的顺序显示在文本框中。下面就是程序部分:
Dim NumArray(1 To 7) As Integer′通用中定义
Private Sub Command1_Click()
Dim i, j, N As Integer
For i = 1 To 7
NumArray(i) = 0
Next i
Randomize
NumArray(1) = Fix(1 + 32 * (Rnd()))
j = 1
Do
N = Fix(1 + 32 * (Rnd()))
For i = 1 To j
If N = NumArray(i) Then
Exit For ′重复时
ElseIf i = j Then ′未重复时
NumArray(i + 1) = N
j = j + 1
Exit For
End If
Next i
Loop While j < 7
PopSort ′升序排列
For i = 1 To 7
Text1(i - 1).Text = NumArray(i)
Next i
End Sub
Private Sub PopSort() ′气泡排序法
Dim i, j, Temp As Integer
For i = 7 To 2 Step -1
For j = 7 - 1 To 1 Step -1
If i >= 7 - j + 1 Then
If NumArray(j + 1) < NumArray(j) Then
Temp = NumArray(j)
NumArray(j) = NumArray(j + 1)
NumArray(j + 1) = Temp
End If
End If
Next j
Next i
End Sub
本程序在VB6.0中文企业版、Win98SE中文版下调试通过,
为了简捷起见,这个程序还有很多不尽如人意的地方,比如不能保存等,喜欢编程的朋友可以充分发挥自己的聪明才智对其加以扩充。
6.用VB实现鼠标的隐藏VB 篇六
用VB实现鼠标的隐藏
在Windows的大多数场合下,鼠标都是始终可见的。但在有些场合需隐藏鼠标,使之不可见,以免影响屏幕画面的整体效果,如屏幕保护程序运行时,鼠标就是不可见的。在VB中可通过调用Windows API函数ShowCursor()来非常轻松地实现鼠标的隐藏。方法如下:
方法一:
首先在全局模块中声明函数如下:
Declare Function ShowCursor Lib “User”(ByVal bShow As Interger) As Interger
当bShow为True时,系统内部计数器加1;当bShow为False时,计数器减1。只有当计数器值大于或等于零时,鼠标才显示出来。通常情况下鼠标是显示的,并且计数器值为0,因此只需简单地调用ShowCursor函数即能实现鼠标的隐藏与显示:
Sub Form―Load
Dim rc%
rc%=ShowCursor(False) 注释:隐藏鼠标
……
rc%=ShowCursor(True) 注释:显示鼠标
End sub
此种方法下ShowCursor(False)与ShowCursor(True)必须成对使用,否则有可能造成鼠标“丢失”的现象,即调用若干次ShowCursor(True)也有可能显示不出鼠标来(视内部计数器值而定),
当鼠标“丢失”时,可通过重新启动Windows来找回鼠标。
方法二:
采用如下程序,可以不成对调用ShowCursor()函数:
注释:隐藏鼠标
While ShowCursor(False)>=0 注释:将计数器值
注释:减至-1
Wend
注释:显示鼠标
While ShowCursor(True)<0 注释:将计数器值加至0
Wend
7.运用VB编程实现计算机自动改名 篇七
(1)准备一个文本文件(命名为wangka.txt),用于保存所有需要安装系统的计算机所需要的信息。这个文件的结构如下:每行对应一台计算机所需要的信息,由六部分组成:这台计算机网卡的mac地址、新的机器名、IP地址、子网掩码、网关、DNS。
(2)编写两个程序(szfw.exe和fw.exe),其中,szfw.exe程序负责两个功能:
1)将样本机设为以administrator身份自动登录。
2)在“c:Documents and SettingsAll Users「开始」菜单程序启动”目录下,生成一个批处理文件yp.bat。不论以什么身份登录计算机,都将自动执行这个目录下的批处理文件yp.bat内容如下:a.读出网卡的mac地址并存入文件(d:1.txt)。实现的方法很多,以cmd/c ipconfig/all>d:1.txt最为简练。b.调用fw.exe程序。c.重新启动计算机,让新的设置生效。简单的做法是:直接将Windows XP中的shutdown.exe文件复制到d:,然后在批处理文件中通过调用它来实现。d.删除自身,即yp.bat。另外,fw程序主要完成的功能如下:
1)从d:1.txt文件中读出本机网卡的mac地址。
2)访问d:wangka.txt文件,寻找包含本机网卡mac地址的相应记录,提取机器名和IP地址等信息。
3)修改计算机名,生成修改IP地址的批处理文件(change.bat)及脚本文件xinxi.bat,在“c:Docu-ments and SettingsAll Users「开始」菜单程序启动”目录下生成调用change.bat的批处理文件ch.bat。改名通过修改注册表实现,修改IP地址通过netsh命令实现。
2 实现
2.1 szfw.exe程序
(1)实现以Administator身份自动登录。修改注册表HKEY_LOCAL_MACHINESOFT-WAREMicrosoftWindowsNTCurrentVersionWinlogon下的Autoadminlogon、Defaultusername的值即可以实现。Autoadminlogon的值为1时代表自动登录,为0时代表不自动登录。Defaultusername的值为自动登录的用户名,这里使用“administrator”。在VB中可以通过调用API函数(Regopenkey,RegsetValue-Ex,RegCloseKey)来编写代码。
(2)生成yp.bat文件用VB语言中的写文件方法就可以实现。如:Open“c:Documents and SettingsAll Users「开始」菜单程序启动yp.bat”For Output Ac-cess Write Lock Read As#1yp.bat文件内容如下:cmd/c ipconfig/all>d:1.txtd:fw.exed:shutdown-r-t 6’-r表示重启计算机,-t 6表示延时6秒del d:fw.execd c:Documents and SettingsAll Users「开始」菜单程序启动del yp.bat。
2.2 fw.exe程序
(1)从文件1.txt中提出网卡的mac地址由cmd/c ipconfig/all>d:1.txt执行后生成的1.txt文件中,网络连接的名字和网卡的mac地址都是单独占据一行,格式如下:“Ethernet adapter本地连接2:”和“Physical Address……:00-40-CA-5F-8F-CC”。可以逐行读入1.txt,比较每一行是否包含关键字Ethernet adapter或Physical Address,若包含则进一步提取并保存相关信息(网络连接的名字和网卡的mac地址),再根据提取出的网卡的mac地址从wangka.txt文件中提取本机需要的信息。
(2)通过调用API函数实现计算机改名。将HKEY_LO-CAL_MACHINEsystemcon-trolset001controlcomputername中的computername、activecomputername以及HKEY_LO-CAL_MACHINEsystemcontrolset001servicestcpipparameters下的nv hostname和hostname的值设为新名字c.修改IP地址,使用Windows 2000自带的netsh就可以很方便的修改IP、子网掩码、网关、DNS等信息。格式:“cmd/c netsh exec脚本文件名”。脚本文件可以是.txt格式。具体用法可参考windows XP的帮助和支持。用VB语言中的写文件方法生成change.bat、xinxi.txt和ch.bat文件.change.bat文件内容如下:cmd/c netsh exec d:xinxi.txtdel d:xinxi.txtdel d:change。batxinxi文件内容如下:int ipset address name=“名字”source=static addr=ip mask=掩码set address name=“名字”gateway=gateway gw-metric=1’注:GatewayMetric指定要配置的默认网关的跃点数set dns name=“名字”source=static addr=“&dns’注:“名字”用实际读出的网络连接的名字替换,网络连接的名字必须使用双引号(“”)括起来。IP、掩码、gateway和dns用实际读出的IP地址、子网掩码、网关、DNS分别替换。ch.bat文件内容如下:call d:change.batdel d:shutdown.execd c:Documents and SettingsAll Users「开始」菜单程序启动del ch.bat
3 运行
(1)在样本机上安装下列内容:Windows 2000 Professional、各种驱动程序、需要的各种软件。
(2)将样本机本地连接属性中的Internet协议(TCP/IP)的IP和DNS设为自动获得IP地址和自动获得DNS服务器地址。
(3)将szfw.exe、fw.exe、wangka.txt文件复制到d:,运行szfw.exe后,删除szfw.exe文件。
(4)使用克隆软件将样本机制成镜像文件。
(5)将镜像还原到所有需要安装的计算机上。只需按动计算机的电源开关,它们就会自动以Administrator身份登录到各自计算机,自动执行yp.bat文件实现自动更名工作。
4 结语
当某台计算机有多块网卡时,可以生成多个脚本文件,并在change.bat文件中生成多行netsh调用命令即可。当然,利用多次重启并调用批处理的方法,还可以实现更复杂的事情,如在域模式下,通过在批处理中调用netdom命令实现自动加入域。
摘要:克隆软件的出现,使得为多台相同配置的计算机安装相同操作系统和应用软件的工作变得相对容易。对于连接在局域网中的计算机而言,还要修改每台计算机的名字和IP地址,这仍然要耗费大量的时间和精力。其实,通过程序能让机器自己去完成这些操作。本文将讨论在Windows 2000 Professional系统中如何使用VB程序实现这一功能。
关键词:批处理文件,注册表,VB
参考文献
[1]阿乐.如何使Windows NT4.0自动登录[EB/OL].天极网,http://www.yesky.com.
[2]BOBO整理.玩转注册表技巧大搜罗(一)[EB/OL].天极网,http://www.yesky.com.
8.用VB操作注册表(六)VB 篇八
用VB操作注册表(六)
梦里水乡
登录数据库Registry的Value的存取--删除某Key的Value
这个功能很容易实现。主要是要调用相应的API函数--RegDeleteValue,以下是它的一些描述:
VB声明
Declare Function RegDeleteValue Lib “advapi32.dll” Alias “RegDeleteValueA” (ByVal hKey As Long, ByVal lpValueName As String) As Long
参数:
hKey:Key Handle
lpValueName: Value名称,如果想删除默认值的话,传入“”[空字符串]即可,
返回值: =0,表示成功;≠0,表示失败。
函数调用例:
`我们假设在HKEY_CURRENT_USERSoftwareSetValue有:
`预设值--VB操作注册表
`str1--我爱我的祖国
`我们要删除这两个Value
ret = RegOpenKey(HKEY_CURRENT_USER, “SoftwareSetValue”, hKey)
If ret = 0 Then
RegDeleteValue hKey, “Str1”
MsgBox “已删除?HKCUSoftwareSetValue?SubKey?Str1?Value”
RegDeleteValue hKey, “”
MsgBox “已删除HKCUSoftwareSetValue?SubKey‘预设值’”
End If
9.VB编程 篇九
用VB编写标准CGI程序(上)
利用通用网关接口(CGI),Web服务器可以执行一些外部程序,并将这些外部程序所产生的输出结果和Web服务器所管理的静态文本、图像和声音融合在一起传给相应的Web浏览器。当客户机的浏览器向Web服务器请求一个HTML文件时,服务器在收到请求后就去寻找这个文件并将找到的文件传送给客户机。而当客户机的请求是一个CGI程序时,Web服务器将激活客户机所请求的CGI程序并把程序的执行结果传给客户机。
标准的CGI程序是通过环境变量和标准输入输出来与Web服务器交换信息的。任何一个被系统激活的进程都拥有标准输入和输出这两个文件句柄,CGI程序的进程也不例外。不过,当CGI程序被Web服务器激活以后,它的标准输入STDIN被连接到Web服务器的标准输出STDOUT上,而CGI程序的标准输出STDOUT则被连到服务器的标准输入STDIN上。因此,CGI程序从标准输入读取信息(也就是从Web服务器的标准输出读信息),而它向标准输出写信息(也就是向Web服务器的标准输入写信息)。
Web服务器一般将客户机传送来的信息放在它的标准输出和相关环境变量中,而CGI程序则从环境变量和它的标准输入(也就是Web服务器的标准输出)获取所需的信息,程序的最终输出结果则被写向它的标准输出STDOUT(也就是Web服务器的标准输入)。Web服务器将从它的标准输入STDIN(也就是CGI程序的标准输出)获取CGI程序的输出结果并将它传送给客户机。客户机、Web服务器和CGI程序之间的信息交流如下图所示。显然,Web服务器就像是客户机和CGI程序间的中介。
Web服务器、CGI程序间的这种标准框架在Unix系统下和微软Windows环境中的字符方式下可以工作得非常好,因为此时系统产生的所有进程都可以存取标准输入和标准输出。但对于微软Windows图形方式下的程序就不行了,因为它们无法存取标准输入和标准输出。为了解决这一问题,微软在Win32系统中创建了另一类型的标准输入和标准输出,程序可以通过调用Win32 API函数来存取标准输入和标准输出,不过,这就意味着使用这类标准输入和标准输出的CGI程序都必须是32位的。
微软Windows环境下的其它一些Web服务器(例如Website)则使用另外一种特殊的技术(即利用INI文件)来实现Web服务器和CGI程序间的数据交流。采用这种被称为“Win-CGI”规范编写的CGI程序通常只能在部分Web服务器上运行。一般地,支持Win-CGI的Web服务器将客户端的输入以及有关的状态信息写入到一个INI文件中,而CGI程序则从该INI文件中获取相关信息,这类程序的执行效率没有标准CGI程序高。
在进行CGI编程时,只要使CGI程序从标准输入和环境变量中获取客户机提供的信息,并将要传送给客户机的输出结果写入标准输出,剩下的信息传递工作将由Web服务器自动完成。CGI只是规定了一个标准的接口规范,只要遵守这个标准规范,程序开发人员就可以利用各种编程工具(如Perl、C、FORTRAN、Visual Basic等)进行CGI编程了。考虑到Visual Basic的强大的数据库处理能力、客户机/服务器模式的编程能力以及字符串处理能力,所以本文主要向大家介绍如何使用VB编写标准的CGI程序。
一、输入输出的处理
一个CGI程序被激活以后,它首先要做的事情就是确定系统平台、Web服务器和客户端浏览器的状态信息以及客户端用户的输入数据。此外,它还必须能够将相关信息传送给客户端,否则它将一事无成。这些操作都是通过存取环境变量和标准输入输出来完成的。用VB编写的CGI程序通过调用函数Environ( )来获取相关环境变量的值。存取标准输入输出就要在程序中使用Win32API函数GetStdHandle( )、ReadFile( )和WriteFile( ),在使用这些函数时首先必须在程序中声明它们,写声明语句时可以借助于VB提供的API文本查看器。
以下的CGI程序说明了在VB-CGI程序中如何处理环境变量和标准输入输出。该CGI程序非常简单,可将标准输入中的信息不经任何处理就返回给客户端,它可被任何表单用POST方法激活:
Declare Function GetStdHandle Lib “kernel32” (ByVal nStdHandle As Long) As Long
Declare Function ReadFile Lib “kernel32” (ByVal hFile As Long, lpBuffer As Any,
ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long,lpOverlapped As Any) As Long
Declare Function WriteFile Lib “kernel32” (ByVal hFile As Long, ByVal lpBuffer As String,ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long,lpOverlapped As Any) As Long
Public Const STD_INPUT_HANDLE = -10&
Public Const STD_OUTPUT_HANDLE = -11&
Public Const FILE_BEGIN = 0&
Public hStdIn As Long 注释: 标准输入文件句柄
Public hStdOut As Long 注释: 标准输出文件句柄
Sub Main
Dim CGI_ContentLength As String,CGI_QueryString As String
Dim lContentLength As Long 注释: 标准输入中的字符串的长度
Dim sBuff As String 注释: 用于存储标准输入中的字符串
Dim lBytesRead As Long 注释: 实际读入的字符个数
Dim rc As Long
Dim sFormData As String
注释:调用系统函数生成标准输入输出文件句柄
hStdIn = GetStdHandle(STD_INPUT_HANDLE)
hStdOut = GetStdHandle(STD_OUTPUT_HANDLE)
注释:获取环境变量CONTENT_LENGTH的值,并将它转换为整型
CGI_ContentLength = Environ(“CONTENT_LENGTH”)
lContentLength = Val(CGI_ContentLength)
sBuff = String(lContentLength, Chr$(0))
注释:从标准输入中读数据
rc = ReadFile(hStdIn, ByVal sBuff, lContentLength, lBytesRead, ByVal 0&)
sFormData = Left$(sBuff, lBytesRead)
OutPut “Content-type: text/html” &vbCrLf
OutPut “”
OutPut “表单传送数据的方法POST ”
OutPut “
表单传送数据的方法POST
”
OutPut “
本CGI 程序使用Visual Basic编制! ”
OutPut “
POST方法传送的数据: ”
OutPut “
” & sBuff
OutPut “”
End Sub
Sub OutPut(s As String) 注释: 定义一个向标准输出写信息的函数
Dim lBytesWritten As Long
s = s & vbCrLf
WriteFile hStdOut, s, Len(s), lBytesWritten, ByVal 0&
End Sub
一般地,用VB编译生成的CGI程序不能正确处理中文信息,
这主要表现在CGI程序向STDOUT输出的中文在Web页面上无法正确显示,可通过在该中文字符串后跟着输出一些空格来解决这个问题。当使用HTML标识符
、
对Web页面进行排版时,浏览器在显示该Web页面时会吃掉多余的空格而只保留一个。在这种情况下,这些空格对Web页面的外观基本上没有什么影响。如果使用HTML标识符
、
对Web页面进行排版,则由于空格不能被浏览器吃掉,所以Web页面的外观将会受到较大的影响。不过,这时可用HTML的表格、
来代替
对Web页面进行排版。
注意:整个CGI程序的主体必须放在MAIN()函数中。
二、URL译码与解码
由于Web服务器和浏览器不能正确处理一些特殊的字符,Web服务器和浏览器之间可能会因此而产生某种程度的误会,所以在数据被传送之前,浏览器都要对表单内客户输入的数据中的特殊字符进行URL译码。
例如,Web系统用“=”分解表单各元素的NAME和VALUE属性,用“&”分解不同表单元素的输入数据。如果在表单的输入数据中包含这些特殊的字符,并且表单的数据在传送给Web服务器前不作任何处理,则Web服务器将无法知道哪一个“=”、“&”是用户输入的,哪一个是浏览器加上的。在由表单属性ACTION定义的URL中,也可能会出现一些特殊的字符,当在CGI程序的名称和路径信息(Path Information)中出现“=”、“&”和“?”时,都会影响数据的正确传送。
URL译码(URL Encoding)就是将Web服务器所不能正确处理的特殊字符转换成它的十六进制数的形式,比如将“%”转换成“%25”、“=”转换成“%3D”等等。这些特殊的字符通常被称作Web系统的保留字符。在Web系统上无论是用GET方法还是用POST方法传送的数据都要进行URL译码。CGI程序要想处理表单传送来的数据,还必须对浏览器URL译码过的数据进行解码。因此,理解URL译码对于我们进行CGI编程是非常重要的。URL译码一般包括以下步骤:
1、浏览器将所传送的数据根据表单所包含的元素分解成“NAME=VALUE”形式,NAME和VALUE分别是表单元素的属性。其中,VALUE属性中存储客户机在表单中输入的数据:如果客户机没有输入数据,则VALUE存储的是表单定义的缺省值;如果缺省值也没有定义,则VALUE值为空。
2、代表表单中各元素的各个“NAME=VALUE”对被浏览器用“&”连接起来。
3、VALUE属性中存放的数据若含有空格,则被转换成“+”。
4、URL和输入数据中所包含的Web系统的保留字符必须被译码成其十六进制数形式。
5、被译码后的字符被表示成一个“%”和它们的十六进制数形式(即%HH)。
CGI程序从环境变量“QUERY_STRING”或标准输入中读入的数据是经过浏览器URL译码过的,故在使用这些数据以前还必须对它们进行URL解码。解码的目的是将数据还原成客户端用户在Web页面上输入时的形式。本文已经介绍了URL译码过程,URL解码过程与它正好相反,它一般包括以下步骤:
1、从浏览器用GET或POST方法所传送来的数据中找出代表各个表单元素所储存数据的“NAME=VALUE”对。
2、VALUE属性中所存放的数据若含有“+”,则被转换成空格。
3、将VALUE属性中所存放的数据的十六进制数“%HH”转换成相应的字符。
Web系统将汉字当成特殊的字符,对它也要进行URL译码。对于一个特殊的单字节字符(比如“/”),浏览器通常将它译码成十六进制数的形式(比如%2F),“%”表示它后面跟的是两位十六进制数。当VB程序对其进行处理时调用Chr$函数就可以将其恢复为原貌。而一个汉字则被浏览器译码成四位十六进制数(比如%D5%C5)。如果CGI程序还像以前那样分别调用Chr(D5)和Chr(C5),则由于D5、C5都不是正常的单字节十六进制数码,故Chr函数返回空,汉字将无法正确还原。正确的做法应该是将有关汉字的四位十六进制数一起传给函数Chr(如Chr(D5C5)),此时汉字才能被正确还原。
因此,可以让CGI程序对四位连续的十六进制数一起进行译码,以便使汉字能够被正确还原。但在这种情况下,当客户端用户输入了两个连续的Web系统保留字符时,CGI程序又可能把它们当成汉字来处理。这时可以让CGI程序在需要对四位连续的十六进制数进行译码时首先检查前面两位是否为Web系统的保留字符,如果是则仍然按照单字节的字符处理。不过如果客户端用户在表单内填写了很多汉字,则CGI程序的负担将会大大加重。事实上,在大多数情况下,客户端用户很少会使用两个连续的Web系统的保留字符,所以可以只让CGI程序对最容易出现的情形如“://”(当客户端用户在表单中输入某一URL时会出现这种情况)进行检查,本文下节提供的函数UrlDecode( )可以实现对汉字和Web系统保留字符的URL解码。
10.VB编程 篇十
关键词:VB6.0,WORD表格,ACCESS数据库,VB控制WORD
1 工作中遇到的问题和解决的方案
我所在单位的局域网机房,有两个机柜,内部放置交换机,路由器等网络设备,两个机柜分别为内网机柜和外网机柜,内网为单位内部使用,不与INTERNET网连接,外网为连接INTERNET互联网的网。我们单位的特殊情况是刚开始建设机房时,交换机的数量少,所以有许多房间并没有连通网络,而是在需要时在机房将端口与交换机连通。机房交换机的端口号与房间号的对应关系经常变化,增加了维护的难度。有时只是某一个节点出现接触不好等问题,却需要检查多个点,,浪费了时间。刚开始时只有一个局域网布线图,后来制作了房间号,机房交换机端口号,机柜线架号三者之间的对照表,通过机房交换机指示灯的亮灭、闪烁等判断某一个房间的计算机是否已经与机柜中的交换机连通,从而有针对性地解决网络连通问题。房间号、机房交换机端口号、机柜线架号三者之间的对照表原先是WORD表格格式的,比较直观,但是查找和维护有些不方便,故障排除速度慢,有时要再查局域网布线图才能解决问题,于是想到编一程序把两种WORD表格中数据导出到一个ACCESS数据库中,使之合二为一,再编一个软件来操作数据库,从而解决查找和维护难的问题。
2 程序设计
本程序的功能有两个,一是从WORD文档表格中读出所需要的数据形成数据库,二是从数据库中读出数据,写入另一个WORD文档表格中。数据库使用ACCESS2000,开发软件的程序语言用VISUAL BASIC6.0。
2.1 对读取数据的WORD文档表格的格式说明
需要读取数据的表格有两种格式,分别在两个WORD文件中。如下面的示意图所示,第一种格式是如表格1所示局域网布线图,它表示全部的房间号与机房线架号之间的对应关系,表格的一行代表一个线架,行列交叉点的单元格为一个房间号,表示有一个机房线架的端口连接到一个房间的网络端口上。应用本程序时,表格的行和列的数量不限制。第二种格式是如表格2所示的对照表,一个表格代表一台交换机。实际有多台交换机,就有多个相同格式的表格。但是表格的行和列的数量不限制。以表格中第一个单元格为例,第一行代表交接机端口号,例如4-1代表第四台交换机的第一个端口,第二行为房间号,第三行为机柜线架号,例如8-18代表第八个线架的第18个端口,这样就可以查到交换机、房间号、机柜线架号三者之间的关系。需要注意,在应用本程序读取时,这两种表格必须不能同时在同一个WORD文档中,才能有正确的读取结果。
2.2 数据库的结构
数据库采用ACCESS2000,建立一个数据库名称为NW1.MDB,在这个数据库中建立两个数据表,分别为NW1和WW1,其中NW1用于存放内部网数据,WW1用于存放外部网数据。两个表的结构相同,都只有4个字符型字段。分别为房间号,机架号,交换机号,状态备注。本文只对WW1数据表进行操作。
2.3 使用VB编程读取WORD表格中数据,并存入ACCESS数据库中
VB调用word方法有多种,这里采用OLE自动化方法。主要是定义一个OBJECT(对象)类型的变量,再把WORD对象赋值给对象变量,由于WORD文档中的各种元素例如文档、段落、书签或单个的字符等都可以作为对象调用所以就可以通过层层调用,达到控制WORD的目的。本程序使用一个窗体,窗体中所需要的控件名称和用途列表如表3。
2.3.1 对表格1中数据进行读取
读取表格1后形成ACCESS数据库中的机架号,房间号两个字段的数据。它表示整个局域网的机房线架号与房间号的对应关系。本程序运行时先显示一个通用对话框,使用者选择一个只包含表格1格式的局域网布线图WORD文件,按打开按钮即开始读取WORD文档中数据,需要注意在本程序的安装文件夹中必须有一个名称为D1的WORD空文件,用于拷贝选择的WORD文档内容。
2.3.2 对表格2中的数据进行读取
程序运行后先弹出一对话框,使用者选择一个只包含表格2格式的WORD文件,按打开即开始读取。一个表格代表一台交换机,实际有多台交换机就有多个表格。本程序可以自动判断WORD文档中有多少个表格,只要表格的格式与表格2相同即可正确读取。读出数据后与数据库中原有数据作比较,形成数据库表WW1中的”交换机号”字段。注意在本程序的安装文件夹中要有一个名称为D1.DOC的空WORD文件用于拷贝选择的文件。程序代码如下。
2.4 将数据库中数据写入一个WORD表格中。
由以上读取两种格式表格形成了数据库表中的数据。现在要从数据库中读出数据,再写入一个WORD表格中,先在程序安装文件夹中手工建一个空白WORD文档,名称为DD,程序执行时调出这个空白文档,由程序控制在文档开头写一行提示文字,再在这个文档中生成所需要的空表格,向表格中写入数据库中的数据。
生成的表格如表4形式,交换机号为空白的表示该房间端口没有连接到机房交换机上。
2.5
关于对数据库中数据的查找、维护等程序代码本文不再赘述。
3 总结
当我们需要从EXCEL电子表格、或者从WORD文档中取出数据作另外的分析并且表格的数据量很大时,这种编程序自动读取数据的方法就显出了优越性,它可以减少手工录入的工作量,减少错误的发生。而编程将数据写入WORD文档中又可利用WORD字处理软件的强大的文字处理功能,从而达到事半功倍的效果。
参考文献
[1]陈宗周,张长富.跟我学Visual basic5.0[M].昆明:云南大学出版社,1998.
[2]鸿志创作.Visual basic6.0中文版应用与开发[M].北京:科学出版社,1999.
【VB编程】推荐阅读:
如何学习编程06-22
编程语言介绍08-02
数控编程试卷分析08-08
数控铣床编程概述08-27
北京学编程哪个学校好08-11
数控加工编程与操作09-10
单片机编程经验集锦10-25
数控自动编程实训说明07-07
ja编程思想读后感07-25