[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] 如何精确获得指定程序从运行到显示界面的时长?

本帖最后由 我来了 于 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位系统上 貌似 普遍现象是第一次运行的时长 比较多,而第二次时长短得少。

返回列表