说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

动记录应用软件工作时间-VB资料

HTML文档下载 WORD文档下载 PDF文档下载
动记录应用软件工作时间-VB资料



---- 实践中常常期望有一个小软件,它可以自动追踪记录当前应用软件进行工作的时间和内容,例如:使用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
' 将系统当前的时间给变量endDate
itmX.SubItems(3) = Time '"时间结束",
返回系统当前的时间。
applicationName = 0
End If
prevFile = str
Set itmX = ListView1.ListItems.Add(, , str)
'在ListView中另起一行
itmX.SubItems(2) = Time
'"时间开始",返回系统当前的时间。
startDate = Now
' 将系统当前的时间给变量startDate
End Sub

---- (四) 生成并运行可执行文件:
---- 选菜单的“文件 | 生成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)。

移动周报:不做内容,只钻技术的快播 一周消息树:中国开源发展缓慢的“病因” 百度应用引擎BAE正式开放 新增支持Node.js CloudVelocity,下一个VMware? Buffer创始人谈开发:先验证,后编程! 谷歌可穿戴式产品再度来袭:会说话的鞋子 未来Chrome OS或取得Android般成功 云落地@北京,北京市北斗公共平台或开放API? GitHub再遭攻击 主要服务中断约一小时 移动开发者将有望拥有.app域名使用权 微信将推“游戏中心”?移动互联网入口圈地加剧 美国航空公司首次开放API 并举办“黑客马拉松”编程大赛 谷歌数据中心设计的10条“黄金法则” GitHub时代:为什么我们都在开源 VMware发布Horizon Suite 三款应用打包折扣低 TOP30+应用排行榜:二月份国内外综合榜单 开源是否意味着不需要负任何责任? 微软年度科技展 酷炫技术知多少 图解Hadoop生态系统 HTML5并不给力 微软IE10又默认启用Flash Oracle出新提案:Java正逼近iOS? TIOBE 2013年3月编程语言排行榜:厚积薄发 Ruby反超Perl 清华大学开源镜像站将被关闭 发表公开信 前Google资深研究员赵勇回国创业 专注计算机视觉/模式识别 开发者福音,微软开源Kinect源代码 日本很积极:富士通和NEC确认将推Tizen设备 10大支持移动“触摸操作”的JavaScript框架推荐 数据科学家的争夺及美分析学专业研究生院的建立 从开放走向封闭 Netflix宣布停止发布API key 《植物大战僵尸》神秘续作:可能是一款横版游戏 高性价比:GlassUp宣布支持Windows Phone系统 寻求DOMINO SERVER 得配置资料!如HTTP的配置等等。 怎么创建dll?创建dll时参数应该怎么定义?创建后怎么调用?在哪儿声明? 熟悉ADODB.Stream的大侠看过来! 在WIN32 CONSOLE APPLICATION 建立的程序中为什么不能使用CString 类 数据库恢复的简单问题 谁用过jfreereport或jaxperreport做过报表?各位大哥帮忙呀!!!--就20分了 紧急高分求助:怎么在windows的user control中加一个参数 [求助]怎样让工程加入Data Report ,菜单 工程 里没有添加Data Report 的呀? 倡导成产手机爱好者与自由开发者协会 CPU拨了会不会叫的啊。内存和显卡拨了不会有声音,一定是主板有问题吗? 我的程序都关闭了,可是为什么进程还存在,我用了多线程的? 呼救高手--急:在线等待帮忙--怪异啊! 急!在线等 浏览器关闭事件----急,谢谢 各位大虾帮帮忙!!!必有重谢!!! 求助二维数组排序问题? 那里有Delphi下载啊? 下面的代码总出错 如果指针被阉割掉以后... 哪位提供一点关于开发小型dbms系统的odbc驱动程序的资料啊? 探讨DMBS??? 关于数据库操作一问? ***禁止重复登录?*** cout流的执行方式问题!请高手回答!不胜感激!!! 欢迎广临(API打印)CDC if (know && 高手) 值得讨论 else 有收获的; 在线等候 咋再MS SQL中实现这个查询? 通过ADSI验证用户登录的问题。 寻找控制面板编程方法 怎么判断类是否存在? 能通过网络修改其它机器的IP地址么?请教各位大侠,在线等!!! 求一段代码:如何得到硬盘的物理系列号,可以用来做为本机唯一标识! 在c++builder中怎样控制excel图表(急!!) 请问如何注册控件并调用、???谢谢 delphi连ACCESS怎么连,具体点。 一道有关类的习题 关于FORM使用的问题,请高手帮忙!!!!!!!!!! 有一个问题! ADOCommand 的问题 如何执行资源中的EXE文件!高手帮帮忙! 根据年份和月份得到天数? 水晶报表问题 请问用DELPHI做电子商务网有什么好书介绍? 数据库序列中表示当前值是???? 怎样通过数据库的内容,让复选框自动选择选上~~~~~~~~~是多选题来的~~~~ 青铜锁,情同锁 win2003接口问题 一个关于数据填加的问题! 我只有这30分了,一个高难度问题要向大家请教(关于创建及放弃)! 经常在别人的com代码里看到这段代码,做什么用的? 初学windows编程,有几点不明白的地方,请教各位 WinForm.cs(405,6): error CS0122: 不可访问“System.Windows.Forms.ProgressBar.value”,因为它受保护级别限制!!!!!这个错误提示 我想知道古文的发音是如何规定的?还有,古代汉语有语法吗? 公共汽车到站前,如果不踩刹车,只是关闭发动机,汽车也会慢慢停下来,其原因是A 汽车对地面有水平阻力的作用B 地面对汽车有水平阻力的作用C 地面对汽车没有水平力的作用,汽车也会停下来D 如何在公交车上做爱 云锦,缂丝是什么东西求答案 《木笛》阅读答案修长,纤弱,一身黑色云锦衣衫仿佛把他也紧束成一棵梅树.衣衫上的梅花,仿佛开在树枝上修长,纤弱,一身黑色云锦衣衫仿佛把他也紧束成一棵梅树.衣衫上的梅花,仿佛开在树 特务或间谍的工作是什么 內涵是一個什么概念. 子部京涵出自韩非子那篇文章,含义是什么? 小海星是否有毒 以“校车”为题写一篇作文,文体不限很多人都说写关于"校车安全”的,但除了这个,没有其他好写的吗? 文言文语法中的词根词缀分别是什么意思?解释词根词缀,并且举例说明. 故宫凶杀案嫌犯在协和医院抢救 已度过山西平顺回应“官员粗口门”:已对涉事德国政府:默克尔被窃听手机泄密可能性意大利媒体称英美合作监控意通讯 政府欧安组织将向阿富汗派遣团队帮助选举美国耐用品订货9月份环比上升3.7%欧盟承诺为企业发展提供便利俄罗斯再次“威胁”乌克兰与欧盟眉来眼欧盟成员国将推动边界监管防范偷渡印度东部洪灾已造成27人丧生新华国际时评:中国周边外交创新局千年礼乐 曲阜泰山游雅安恋食之旅DIY丝带装饰花盆煮酒论古今醉春酒的诗情画意甜蜜圣诞 双人浪漫晚餐专题新手入门:猪肉的选择与烹调小苏打的妙用煲出美味 各种功能的电饭煲国货当自强!四款高质量SUV,只要1万圣节来了,孩子们的南瓜灯世界
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘