- 帖子
- 431
- 积分
- 1577
- 技术
- 11
- 捐助
- 0
- 注册时间
- 2013-1-11
|
本帖最后由 我来了 于 2017-3-16 08:08 编辑
如何写出一个精确的 判断程序时长的程序来?
要求是这样的,双击程序时开始计时。。。。。直到目标程序窗口标题出现时 停止计时
我用AHK尝试着写了几个版本
发现最后得到的时长有很大的出入
1个版本是通过检测目标窗口标题是否出现作为依据,循环体结束时弹框报数,结果发现貌似人工双击版本的时长 比 程序运行版本的时长 小一半。
2另一个版本是 得到PID所匹配的标题作为依据,那个感觉窗口未出现时就已经匹配到了
Run , E:\Photoshop_CC2015\Photoshop.exe ,,, A_PID
i:=0
Loop
{
i:=i+1
If !WinExist("Adobe Photoshop CC 2015")
continue
}until WinExist("Adobe Photoshop CC 2015")
MsgBox , %i%
=============================================
F1::
Run , E:\Photoshop_CC2015\Photoshop.exe ,,, A_PID
i:=0
Loop
{
i:=i+1
屏幕中心点X坐标:=Ceil(A_ScreenWidth/2) ;其实以下4行不起啥作用!
屏幕中心点Y坐标:=Ceil(A_ScreenHeight/2)
MouseMove , %屏幕中心点X坐标% , %屏幕中心点Y坐标%
Click Left 1
WinGetTitle , PID所匹配的标题, ahk_pid %A_PID%
If (PID所匹配的标题<>"Adobe Photoshop CC 2015") ;情况1,目标窗口标题名未出现!此时是桌面
continue
}until (PID所匹配的标题="Adobe Photoshop CC 2015") ;直到发现PID所匹配的标题出现!
MsgBox , %i%毫秒`n发现PID所匹配的标题是%PID所匹配的标题% ;用此处当until(i>X的条件
ExitApp
==========================================
最后 ,还有一个严重问题WIN7X64位系统上 貌似 普遍现象是第一次运行的时长 比较多,而第二次时长短得少。 |
|