电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 站长之家
自动记录应用软件工作_visualbasic教程
作者:网友供稿 点击:0
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
----实践中常常期望有一个小软件,它可以自动追踪记录当前应用软件进行工作的时间和内容,例如:使用Word进行文件编辑排版的时间和文件名称,使用AutoCAD软件进行制图的时间和图挡名称,玩某个游戏软件的时间和游戏软件的名称等等。本文讨论如何利用VB6.0编程实现这样的软件;本文的程序可同时追踪记录使用Word,Excel或AutoCAD14打开文件(包括打开网上邻居中的文件)进行工作的开始时间、结束时间(以秒为单位)和使用的文件名(包括完整路径)。

----下面给出从建立该软件的工程项目到最后生成可执行文件的全过程,这个程序的关键是下面的Timer事件(以1000毫秒为周期),它利用了微软的ActiveDocument技术(Active文挡),使用函数GetObject来获取当前应用软件对象,用函数DateDiff计算时间差,利用微软的“MicrosoftWindowsCommnControl5.0”中的控件“ListView”来实现数据显示界面;程序在Win98/NT下可以自动追踪记录使用Word97,Excel97和AutoCAD14的使用情况,具体叙述如下。

----(一)建立工程(项目)vb_time.vbp:

----在C盘建目录:VB_TIME,今后我们将这个软件的文件都放到这个目录里。运行VB6.0,选“文件|新建工程”的“标准EXE”,出现窗体后可先将这个工程存盘:选菜单的“文件|工程另存为”,先取名“vb_time”存窗体(扩展名:frm),再取名“vb_time”存工程(扩展名:vbp)。

----(二)增加控件ListView与Timer:

----在菜单中选:“工程|部件”,出现“部件”对话框后选:MicrosoftCommanControl5.0,这时在控件栏里可以看见一些新增加的控件,其中我们需要将其中的“ListView”控件放入到窗体中;放入该控件后,用鼠标右击窗体中“ListView1”,选“属性”,出现“属性页”对话框,在“通用”部分改变“查看”为3,“外观”为1;在“列首”部分插入4列,分别为:文件,时间,开始时间,结束时间.将Timer控件放入窗体,并设置其Interval属性为1000(=1秒)。

----(三)增加代码:

----(1)通用.声明

OptionExplicit
PublicapplicationNameAsObject
运行的应用软件对象名
PublicprevFileAsString
当前应用软件打开的文件名
DimitmXAsListItem
ListView中的列数组
DimstartDateAsDate开始时间
DimendDateAsDate结束时间
PublicnewSessionAsBoolean
(2)FORM的Load过程:
PrivateSubForm_Load()
newSession=True
EndSub
(3)Timer1.Timer过程:
PrivateSubTimer1_Timer()
DimstrAsString
DimdocAsObject
OnErrorResumeNext
SetapplicationName=GetObject(,
"Excel.Application")取得当前运行的Excel对象
Setdoc=applicationName.ActiveWorkBook
当前Excel打开的工作簿文件
SetapplicationName=GetObject(,
"Word.Application")取得当前运行的Word对象
Setdoc=applicationName.ActiveDocument
当前Word的applicationName打开的文件
SetapplicationName=GetObject(,
"AutoCAD.Application")取得当前运行的AutoCAD对象
Setdoc=applicationName.ActiveDocument
当前AutoCAD打开的图挡文件
str=doc.FullName
当前applicationName打开的文件名(包括路径)
Ifstr=""Then当前无上述对象,
则用"无工作文件"命名
str="无工作文件"
EndIf
IfprevFile=strThen时间增加
DimactDateAsDate
actDate=Now
将系统当前的时间给变量actDate
itmX.SubItems(1)=DateDiff("s",
startDate,actDate)计算开始时间与当前时间的差
ExitSub退出子过程
EndIf
若当前文件改变
IfprevFile<>""Then
endDate=Now
将系统当前的时间给变量endDate
itmX.SubItems(3)=Time"时间结束",
返回系统当前的时间。
applicationName=0
EndIf
prevFile=str
SetitmX=ListView1.ListItems.Add(,,str)
在ListView中另起一行
itmX.SubItems(2)=Time
"时间开始",返回系统当前的时间。
startDate=Now
将系统当前的时间给变量startDate
EndSub


----(四)生成并运行可执行文件:

----选菜单的“文件|生成vb_time.exe”即可。可退出VB,运行vb_time.exe,该软件运行后自动进行监视,一当您使用了Word(Excel或AutoCAD14)即开始记录,直到该应用软件退出;如桌面上无Word,Excel或AutoCAD14运行,或虽有但尚未打开一个文件,则该软件以“无工作文件”进行记录。有兴趣的读者可以进一步修改,使得程序可以监视更多的应用软件特别是监视游戏软件,同时将记录结果存盘以供以后查询使用。

----(五)几个关键函数的说明:

----(1)DateDiff函数

----语法DateDiff(interval,date1,date2[,firstdayofweek[,firstweekofyear]])返回Variant(Long)的值,表示两个指定日期间的时间间隔数目。DateDiff函数语法中有下列命名参数:

----interval必要。字符串表达式,表示用来计算date1和date2的时间差的时间间隔Date1,date2必要;Variant(Date)。计算中要用到的两个日期。

----Firstdayofweek可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。

----firstweekofyear可选。指定一年的第一周的常数。如未指定,则以包含1月1日的星期为第一周。

----interval参数的设定值如下(我们设置为s即秒):

----yyyy年;q季;m月;y一年的日数;d日;w一周的日数;ww周;h时;

----n分钟;s秒

----(2)GetObject函数

----语法GetObject([pathname][,class])

----返回文件中的ActiveX对象的引用。pathname可选的,包含待检索对象的文件的全路径和名称。如果省略pathname,则class是必需的。class代表该对象的类的字符串;class参数的语法格式为appname.objecttype,且语法的各个部分如下:

----appname必需的;Variant(String)。提供该对象的应用程序名称(我们用Word)。

----objecttype必需的;Variant(String)。待创建对象的类型或类(我们用Application)。

----使用GetObject函数可以访问文件中的ActiveX对象,而且可以将该对象赋给对象变量。可以使用Set语句将GetObject返回的对象赋给对象变量。例如将Word当前打开的文件对象赋给对象变量word:

----DimwordAsObject

----Setword=GetObject(,“Word.Application”)

----注意:当对象当前已有实例,或要创建已加载的文件的对象时,就使用GetObject函数。

----如果对象当前还没有实例,或不想启动已加载文件的对象,则应使用CreateObject函数。

----(3)ActiveDocument性质

----ActiveDocument得到一个Active文挡(activedocument)的文件对象,语法是:object.ActiveDocument

----参数object表示一个应用对象,当进入这个应用对象的ActiveDocument性质,由于应用对象已经被隐含,因此可以省略这个应用对象而使用它的属性与方法。注意:对Excel,不用ActiveDocument而使用ActiveWorkBook->


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·PHP沉思录
·ASP脚本语言的19个基本技巧使用
·在ASP.NET页面上轻松整合JavaScript
·学习使用ASP对象和组件
·通过启动脚本来感受ASP的力量
·使用ASP脚本技术
·ASP.NET的本质 IIS以及进程模式
·PHP常用的正则表达式
·PHP常用的正则表达式1
·利用PHP制作简单的内容采集器

最新文章
·优秀创业者的人的基础
·李典新:出狠招让网民记住你的网址
·为站长再扫扫域名知识的盲点
·跳出网络黑洞 谈网站创新营销
·谁能留住上帝:站长请注意你网站的服务态度
·AdSense基础之广告过滤
·BBS登记、审批及备案大全
·网络营销不是只有搜索引擎营销
·让IT工作者过劳的13个坏习惯
·流量的概念


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号