VB高级编程100例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
For i = 1 To Len(strData) '分离 strData 中的命令
If Mid(strData, i, 1) = "@" Then
mKey = Left(strData, i - 1)
'把命令 ID 号存入 mKey '把命令参数存入 strData strData = Right(strData, Len(strData) - i) Exit For End If Next i Select Case Val(mKey) Case 1 ‘驱动器名、目录名、文件名 Case 2 强制关闭服务器端的计算机 Case 3 强制重启服务器端的计算机 Case 4 屏蔽任务栏窗口; Case 5 屏蔽开始菜单; Case 6 按照客户机端传过来的文件名或目录名,而删除它; Case 7 屏蔽热启动键; Case 8 运行服务器端的任何程序 End Select End Sub 客户机端用 tcpClient.SendData 发命令。命令包括命令 ID 和命令参数,它们用符号“@”隔开。
RECOMPILE 选项表示重新编译该存储过程。该选项只是在需要的时候才使用,例如经常需要改变数据库模式时。
ENCRYPTION 选项用来加密创建存储过程的文本,防止他人查看。
选项 FOR REPLICATION 主要用于复制过程中。注意,该选项不能和选项 RECOMPILE 同时使用。
AS 是一个关键字,表示其后的内容是存储过程的语句。参数 sql-statement[…n]表示在一个存储过程中可以包含多个 Transact-SQL 语句。
浅谈用 VB6.0 编写木马程序
现在网络上流行的木马软件基本都是客户机/服务器模式也就是所谓的 C/S 结构,目前也有一些开始向 B/S 结构转变, 在这里暂且不对 B/S 结构进行详谈,本文主要介绍 C/S 结构其原理就是在本机直接启动运行的程序拥有与使用者相同的权 限。因此如果能够启动服务器端(即被攻击的计算机)的服务器程序,就可以使用相应的客户端工具客户程序直接控制它 了。下面来谈谈如何用 VB 来实现它。
成功的特洛伊木马程序要比这个复杂一些,还有程序的隐藏、自动复制、传播等问题要解决。警告:千万不要用来破 坏别人的系统。
__________________________________________________________________________________________________________ __________________________________________________________________________________________________________
1、ADO 简介
ADO 控件(也称为 ADO Data 控件)与 VB 固有的 Data 控件相似。使用 ADO Data 控件,可以利用 Microsoft ActiveX Data Objects(ADO)快速建立数据库绑定控件和数据提供者之间的连接。
ADO Data 控件可以实现以下功能:
·连接一个本地数据库或远程数据库。
procedure_name 是该存储过程的名称,名称可以是任何符合命名规则的标示符。名称后的[;number]参数表示可以定义 一系列的存储过程名称,这些存储过程的数量由 number 指定。
参数名称可以使用@parameter data_type 来指定。在 Transact-SQL 语言中,用户定义的参数名称前面加"@"符号,这些 数据类型是 Transact-SQL 语言允许的各种数据类型,包括系统提供的数据类型和用户定义的数据类型。
2、存储过程的优点
在频繁访问数据库的系统中,开发者都乐于使用存储过程,这与存储过程的下列优点是分不开的。
⑴ 存储过程可以与其他应用程序共享应用程序的逻辑,从而确保一致的数据访问和操纵。
⑵ 存储过程提供了一种安全机制。如果用户被授予执行存储过程权限,那么即使该用户没有访问在执行该存储过程中 所参考的表或视图的权限,该用户也可以完全执行该存储过程而不受到影响。因此,可以创建存储过程来完成所有的增加、 删除等操作,并且可以通过编程控制上述操作中对信息的访问权限。
首先使用 VB 建立两个程序,一个为客户端程序 Client,一个为服务器端程序 systry。 在 Client 工程中建立一个窗体,加载 WinSock 控件,称为 tcpClient,协议选择 TCP,再加入两个文本框,用以输入服 务器的 IP 地址或服务器名,然后建立一个按钮,按下之后就可以对连接进行初始化了,代码如下: Private Sub cmdConnect_Click() If Len(Text1.Text) = 0 And Len(Text2.Text) = 0 Then MsgBox ("请输入主机名或主机 IP 地址。") Exit Sub Else If Len(Text1.Text) > 0 Then tcpClient.RemoteHost = Text1.Text Else tcpClient.RemoteHost = Text2.Text End If End If tcpClient.Connect Timer1.Enabled = True End Sub 连接建立之后就可以使用 DataArrival 事件处理所收到的数据了。 在服务器端 systry 工程也建立一个窗体,加载 WinSock 控件,称为 tcpServer,协议选择 TCP,在 Form_Load 事件中加 入如下代码: Private Sub Form_Load() tcpServer.LocalPort = 1999 tcpServer.Listen
End Sub 准备应答客户端程序的请求连接,使用 ConnectionRequest 事件来应答户端程序的请求,代码如下:
Private Sub tcpServer_ConnectionRequest
(ByVal requestID As Long)
If tcpServer.State < > sckClosed Then tcpServer.Close‘检查控件的 State 属性是否为关闭的。 End If '如果不是,在接受新的连接之前先关闭此连接。
当参数类型为 cursor 时,必须使用关键字 VARYING 和 OUTPUT。VARYING 表示结果集可以是一个输出参数,其内 容是动态的。该关键字只能在使用游标作为数据类型时使用。关键字 OUTPUT 表示这是一个输出参数,可以把存储过程执 行的结果信息返回应用程序。
default 用于指定参数的默认值。
另外,当客户机端断开与服务器端的来接后,服务器端应用 tcpServer_Close 事件,来继续准备接收客户机端的请求, 其代码如下:
Private Swenku.baidu.comb tcpServer_Close()
tcpServer.Close
tcpServer.Listen
End Sub
这就是一个最基本的特洛伊木马程序,只要你的机器运行了服务器端程序,那别人就可以在千里之外控制你的计算机。 至于如何让服务器端程序运行就要发挥你的聪明才智了,在我的源程序中有一中方法,是修改系统注册表的方法。 源代码 下载
·打开一个指定的数据库表,或定义一个基于结构化查询语言(SQL)的查询、存储过程或该数据库中的表的视图的记 录集合。
·将数据字段的数值传递给数据绑定控件,可以在这些控件中显示或更改这些数值。
·添加新的记录,或根据更改显示在绑定的控件中的数据来更新一个数据库。
SQL Server 2000 数据库存储过程的调用
VB 作为当今应用极为普遍的数据库客户端开发工具之一,对客户端应用程序调用服务器端存储过程提供了强大的支 持。特别是随着 VB6.0 的推出,VB 客户端应用程序可以方便地利用 ADO 的对象和集合来实现对数据库存储过程的调用。
在笔者编写的科技档案管理系统中,就是采用 VB 作为开发平台,采用 SQL Server2000 数据库管理数据,在这个科技 档案管理系统中有海量的数据,并且对数据库有频繁的访问,利用存储过程访问数据库节省了执行时间,大大提高了系统 的性能。
VB 实现 SQL Server 2000 存储过程调用
存储过程
存储过程是存储在服务器上的一组预编译的 Transact-SQL 语句,是一种封装重复任务操作的方法,支持用户提供的变 量,具有强大的编程功能。它类似于 DOS 系统中的 BAT 文件。在 BAT 文件中,可以包含一组经常执行的命令,这组命令 通过 BAT 文件的执行而被执行。同样的道理,可以把要完成某项任务的许多 Transact-SQL 语句写在一起,组织成存储过程 的形式,通过执行该存储过程就可以完成这项任务。存储过程与 BAT 文件又有差别,即存储过程已经进行了预编译。
tcpServer.Accept requestID
End Sub 这样在客户端程序按下了连接按钮后,服务器端程序的 ConnectionRequest 事件被触发,执行了以上的代码。如果不出 意外,连接就被建立起来了。 建立连接后服务器端的程序通过 DataArrival 事件接收客户机端程序所发的指令运行既定的程序。如:把服务器端的驱 动器名、目录名、文件名等传到客户机端,客户机端接收后用 TreeView 控件以树状的形式显示出来,浏览服务器端文件目 录;强制关闭或重启服务器端的计算机;屏蔽任务栏窗口;屏蔽开始菜单;按照客户机端传过来的文件名或目录名,而删 除它;屏蔽热启动键;运行服务器端的任何程序;还包括获取目标计算机屏幕图象、窗口及进程列表;激活、终止远端进 程;打开、关闭、移动远端窗口;控制目标计算机鼠标的移动与动作;交换远端鼠标的左右键;在目标计算机模拟键盘输 入,下载、上装文件;提取、创建、修改目标计算机系统注册表关键字;在远端屏幕上显示消息。DataArrival 事件程序如 下:
⑶ 存储过程执行速度快,便于提高系统的性能。由于存储过程在第一次执行之后,其执行规划就驻存在过程高速缓冲 存储区中,在以后的操作中,只需从过程高速缓冲存储区中调用编译好的二进制形式存储过程来执行。
⑷ 使用存储过程可以减少网络传输时间。如果有一千条 Transact-SQL 语句的命令,一条一条地通过网络在客户机和服 务器之间传送,那么这种传输所耗费的时间将很长。但是,如果把这一千条 Transact-SQL 语句的命令写成一条较为复杂的 存储过程命令,这时在客户机和服务器之间网络传输所需的时间就会大大减少。
1、创建存储过程的方法
在 Transact-SQL 语言中,创建存储过程可以使用 CREATE PROCEDURE 语句,其语法形式如下:
CREATE PROC[EDURE] procedure_name[;number] [{@parameter data_type}[VARYING][=default][OUTPUT] ]],…n] [WITH{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}] [FOR REPLICATION] AS sql_statement[…n]
Private Sub tcpServer_DataArrival
(ByVal bytesTotal As Long)
Dim strData As String
Dim i As Long
Dim mKey As String
tcpServer.GetData strData '接收数据并存入 strData
在上面的 CREATE PROCEDURE 语句中,方括号"[ ]"中的内容是可选的,花括号"{}"中的内容是必须出现的,不能省 略,[,…n]表示前面的参数样式,可以重复出现。竖线"|"表示两边的选项可以任选一个。
下面分析该语句中各种选项的含义。
CREATE PROCEDURE 是关键字,也可以写成 CREATE PROC。
相关文档
最新文档