VB COM基本的讲座之测试ActiveX EXEs_第1页
VB COM基本的讲座之测试ActiveX EXEs_第2页
VB COM基本的讲座之测试ActiveX EXEs_第3页
VB COM基本的讲座之测试ActiveX EXEs_第4页
VB COM基本的讲座之测试ActiveX EXEs_第5页
全文预览已结束

下载本文档

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

文档简介

VB COM基本的讲座之测试ActiveX EXEs本节将创建并测试自己的ActiveX EXE程序。 示例中将使用这样一个组件,它是一个有效的文件探测器。大约每隔60秒检测指定文件的存在性。如何该文件存在,该组件激发一个事件来调用应用程序,如果不存在,则另作处理。 当然,如果将所有代码写到ActiveX DLL工程,则运行时程序代码将被挂起直到文件检测代码运行完毕为止。由于ActiveX EXE工程拥有自己的进程空间,代码运行时会自我协调、异步处理,从而不会使其他程序代码停顿。 下面就来创建: 新建一个ActiveX EXE工程; 工程名设为File; 添加的类名为FileCheck; 下一步,我们需要构造一些用于每隔1分钟左右检测文件的代码。这里将在ActiveX EXE工程插入一个带有计时器的表单。但该表单不会被显示,因为我们只是使用上面的计时器控件每隔1分钟左右来检测文件,如果相应的文件被检测到,则激发一个事件。 选择Project-Add Form; 在表单Form1中添加一个计时器; 在表单代码中添加下列变量的声明: Public Filename As String 该变量用于保存被监视的文件名。 在表单代码中添加下列事件的声明: Public Event FileFound() 该事件只有当前面的文件发现后才被激发。 在Timer1代码中添加下列语句: Private Sub Timer1_Timer() If Dir(Filename) Then RaiseEvent FileFound Timer1.Interval = 0 End If End Sub 代码中,首先简单地检测文件,若存在则激发FileFound事件,然后将Timer1的时间间隔设为0,停止以后的检测。 打开FileCheck类; 在通用声明处添加下列对象的声明: Dim WithEvents objFileCheck As Form1 这就是Form1的代码,它通知Visual Basic上述定义的对象是用来保存表单的。关键词WithEvents表示该类可以接收传送来的事件,如前面的FileFound等。 本节将创建并测试自己的ActiveX EXE程序。 示例中将使用这样一个组件,它是一个有效的文件探测器。大约每隔60秒检测指定文件的存在性。如何该文件存在,该组件激发一个事件来调用应用程序,如果不存在,则另作处理。 当然,如果将所有代码写到ActiveX DLL工程,则运行时程序代码将被挂起直到文件检测代码运行完毕为止。由于ActiveX EXE工程拥有自己的进程空间,代码运行时会自我协调、异步处理,从而不会使其他程序代码停顿。 下面就来创建: 新建一个ActiveX EXE工程; 工程名设为File; 添加的类名为FileCheck; 下一步,我们需要构造一些用于每隔1分钟左右检测文件的代码。这里将在ActiveX EXE工程插入一个带有计时器的表单。但该表单不会被显示,因为我们只是使用上面的计时器控件每隔1分钟左右来检测文件,如果相应的文件被检测到,则激发一个事件。 选择Project-Add Form; 在表单Form1中添加一个计时器; 在表单代码中添加下列变量的声明: Public Filename As String 该变量用于保存被监视的文件名。 在表单代码中添加下列事件的声明: Public Event FileFound() 该事件只有当前面的文件发现后才被激发。 在Timer1代码中添加下列语句: Private Sub Timer1_Timer() If Dir(Filename) Then RaiseEvent FileFound Timer1.Interval = 0 End If End Sub 代码中,首先简单地检测文件,若存在则激发FileFound事件,然后将Timer1的时间间隔设为0,停止以后的检测。 打开FileCheck类; 在通用声明处添加下列对象的声明: Dim WithEvents objFileCheck As Form1 这就是Form1的代码,它通知Visual Basic上述定义的对象是用来保存表单的。关键词WithEvents表示该类可以接收传送来的事件,如前面的FileFound等。 从Object下拉列表框中选择Class; 再从Procedure下拉列表框中选择Initialize; 在Class_Initialize事件中添加下列代码: Private Sub Class_Initialize() Set objFileCheck = New Form1 End Sub 该代码简单地使objFileCheck等于Form1的新的一个实例。之后,我们将使用在Form1中添加的功能。接下来,我们编写一个子过程用来监视一个文件。 在FileCheck中添加下列代码: Public Sub MonitorFile(Filename As String) objFileCheck.Filename = Filename objFileCheck.Timer1.Interval = 60000 End Sub 当我们调用此过程时,需要给出文件名参数。这时,表单的Filename变量保存该文件名,然后将计时器的时间间隔属性设置为60,000毫秒并激活该计时器。 至此,我们构造了用于监视文件的所有代码。但是当文件检测到时,我们需要通过激发FileFound事件通知程序正在使用ActiveX EXE。 在通用声明部分添加下列事件声明: Public Event FileFound(Filename As String) 该代码只是简单地定义一个FileFound事件,下一步该事件的相应代码。 从Object下拉列表框中选择objFileCheck; 再从Procedure下拉列表框中选择FileFound; Private Sub objFileCheck_FileFound ( ) RaiseEvent FileFound ( objFileCheck.Filename) End Sub 显然,当文件检测到时,这里的FileFound事件就被激发。但我们还需要在使用EXE程序中添加这个事件的添加代码。 在objFileCheck_FileFound事件中添加下列代码: RaiseEvent FileFound(objFileCheck.Filename) 这就是我们的全部代

温馨提示

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

最新文档

评论

0/150

提交评论