WYC 发表于 2019-5-23 14:01:37

统计软件实际使用时间

请问各位大神,我想写一个.AU3是统计某个软件实际使用时间的,
判断使用时间的条件是
1,XX软件激活在最前 可以用Winactive来判断
2,鼠标正在动- 这个我不知道怎么判断
3,同时满足两个条件开始计时然后把时间记录在一个time.txt里面。
有没有大神知道该怎么写 多少!!

afan 发表于 2019-5-23 14:01:38

Global $hGui = GUICreate('test', -1, -1, -1, -1, BitOR(0xCA0000, 0x10000))
GUISetState(@SW_MAXIMIZE)
Global $aPos0 = MouseGetPos(), $_timer = 0
AdlibRegister('_ck')
Do
Until GUIGetMsg() = -3
If $_timer Then MsgBox(0, '距离开始总时长', Round(TimerDiff($_timer) / 1000) & ' (秒)')
Func _ck()
        If Not WinActive($hGui) Then Return
        Local $aPosNow = MouseGetPos()
        If $aPosNow <> $aPos0 Or $aPosNow <> $aPos0 Then
                AdlibUnRegister()
                $_timer = TimerInit()
                ToolTip('开始计时')
        EndIf
EndFunc   ;==>_ck

afan 发表于 2019-5-23 14:34:58

开始计时之后呢?直到软件退出的总时长?
还是鼠标要一直在激活的窗体活动才累计?

WYC 发表于 2019-5-24 10:52:39

afan 发表于 2019-5-23 14:34
开始计时之后呢?直到软件退出的总时长?
还是鼠标要一直在激活的窗体活动才累计?

你好
我想的是直到这个AU3被手动关闭才结束统计。
这个au3我会添加到开机启动里,用户一开机就自动运行以统计实际某个软件使用时间。
举个例子
用户打开outlook客户端,证明用户在使用outlook的依据就是outlook激活在最前面并且鼠标一直在动,因为outlook的窗体一般是最大化的。如果鼠标在激活窗口就开始统计的话就不太准确,他可能去吃饭了但是oulook激活在最前面并且鼠标也在outlook上.
所以我想的最优解决方案是oulook激活在最前端,并且鼠标在动就证明用户是在使用outlook中的。统计也依照这两个并行条件来统计。

zhang_jf 发表于 2019-5-26 16:06:41

学习:face (37):

左手2018 发表于 2019-5-27 21:21:59

虽然不懂,但是帮顶一下.
页: [1]
查看完整版本: 统计软件实际使用时间