| 网站首页 | JAVA文章 | AppServers | Web开发 | 应用开发 | 资源下载 | 论坛
    想学好编程,学好外语很重要  [enadd  2006年12月25日]        
设为首页 加入收藏 联系站长
您现在的位置: 编程笔记网 >> 应用开发 >> vb >> 系统 >> 文章正文
自动记录应用软件工作时间            【字体:
自动记录应用软件工作时间
作者:未知    文章来源:-    点击数:    更新时间:2006-8-9

自动记录应用软件工作时间





实践中常常期望有一个小软件,它可以自动追踪记录当前应用软件进行工作的时间和内容,例如:使用Word进行文件编辑排版的时间和文件名称,使用AutoCAD软件进行制图的时间和图挡名称,玩某个游戏软件的时间和游戏软件的名称等等。本文讨论如何利用VB6.0编程实现这样的软件;本文的程序可同时追踪记录使用Word,Excel或AutoCAD14打开文件(包括打开网上邻居中的文件)进行工作的开始时间、结束时间(以秒为单位)和使用的文件名(包括完整路径)。


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


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


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


(二)增加控件ListView与Timer:


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


(三)增加代码:


(1)通用.声明


Option Explicit

Public applicationName As Object

'运行的应用软件对象名

Public prevFile As String

'当前应用软件打开的文件名

Dim itmX As ListItem

'ListView中的列数组

Dim startDate As Date '开始时间

Dim endDate As Date '结束时间

Public newSession As Boolean

(2)FORM的Load过程:

Private Sub Form_Load()

newSession = True

End Sub

(3)Timer1.Timer过程:

Private Sub Timer1_Timer()

Dim str As String

Dim doc As Object

On Error Resume Next

Set applicationName = GetObject(,

"Excel.Application") '取得当前运行的Excel对象

Set doc = applicationName.ActiveWorkBook

'当前Excel打开的工作簿文件

Set applicationName = GetObject(,

"Word.Application") '取得当前运行的Word对象

Set doc = applicationName.ActiveDocument

'当前Word的applicationName打开的文件

Set applicationName = GetObject(,

"AutoCAD.Application") '取得当前运行的AutoCAD对象

Set doc = applicationName.ActiveDocument

'当前AutoCAD打开的图挡文件

str = doc.FullName

'当前applicationName打开的文件名(包括路径)

If str = "" Then '当前无上述对象,

则用"无工作文件"命名

str = "无工作文件"

End If

If prevFile = str Then '时间增加

Dim actDate As Date

actDate = Now '

将系统当前的时间给变量actDate

itmX.SubItems(1) = DateDiff("s",

startDate, actDate) '计算开始时间与当前时间的差

Exit Sub '退出子过程

End If

'若当前文件改变

If prevFile <> "" Then

endDate = Now

[1] [2] 下一页  

文章录入:enadd    责任编辑:enadd 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
  • 用VB编写DirectX7.0游戏(下…

  • 用VB编写DirectX7.0游戏(上…

  • 使用OLE DB和ADO调用返回记录…

  • 使用VB调用Oracle程序包内的…

  • VB中用ADO对象动态创建数据库…

  • fffff

  • 如何用MSComm Control传Bina…

  • MultiLink的WinSock Server程…

  • 用VB制作浏览器

  • 用VB编写网络寻呼机

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 |