自动记录应用软件工作

安妮的大熊丶

安妮的大熊丶

2016-02-19 16:30

今天图老师小编给大家精心推荐个自动记录应用软件工作教程,一起来看看过程究竟如何进行吧!喜欢还请点个赞哦~
----实践中常常期望有一个小软件,它可以自动追踪记录当前应用软件进行工作的时间和内容,例如:使用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->

展开更多 50%)
分享

猜你喜欢

自动记录应用软件工作

编程语言 网络编程
自动记录应用软件工作

蹲坑必备应用软件大推荐

手机软件 应用软件
蹲坑必备应用软件大推荐

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

查看应用软件Hosts的方法

软件教程
查看应用软件Hosts的方法

建立应用软件注册安全机制

编程语言 网络编程
建立应用软件注册安全机制

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

学生必备10款手机应用软件

手机软件 应用软件
学生必备10款手机应用软件

手机上网必备应用软件推荐

手机软件 应用软件
手机上网必备应用软件推荐

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

如何实现VB程序登录admin888加密

如何实现VB程序登录admin888加密

不用组件实现Ajax效果.(2)

不用组件实现Ajax效果.(2)
下拉加载更多内容 ↓