因此,我发现很难找到一种方法来检查按钮是否可以按下(取消或确定)。相反,我寻找其他指示计算完成的指标。我遇到了 winGuiAuto,它具有一些非常有用的功能,可以从窗口中提取文本和其他内容。
赢贵汽车
需要两个工具 - 如问题所示找到窗口的 hwnd,然后拉出文本。这些曾经是
findTopWindow
dumpWindow
作为一个例子,我在程序运行和完成后显示了窗口的输出。
跑步:
[[3736670, 'OK', 'Button'], [1180838, 'Cancel', 'Button'], [3737440, 'Calculating: EGCC 05LAFTMP', 'Static'], [1050590, 'Start Calc:', 'Static'], [3999714, 'End Calc:', 'Static'], [4392774, 'Total Calc:', 'Static'], [8390102, 'Status:', 'Static'], [6489324, 'Calculation Time', 'Button'], [7997044, '12:47:02', 'Static'], [9242260, '12:47:11', 'Static'], [4589322, '', 'Static'], [4851642, 'Progress1', 'msctls_progress32'], [2885686, '--', 'Static']]
完全的:
[[3736670, 'OK', 'Button'], [1180838, 'Cancel', 'Button'], [3737440, 'Calculation Finished.', 'Static'], [1050590, 'Start Calc:', 'Static'], [3999714, 'End Calc:', 'Static'], [4392774, 'Total Calc:', 'Static'], [8390102, 'Status:', 'Static'], [6489324, 'Calculation Time', 'Button'], [7997044, '12:47:02', 'Static'], [9242260, '12:48:05', 'Static'], [4589322, '00:01:03', 'Static'], [4851642, 'Progress1', 'msctls_progress32'], [2885686, '/', 'Static']]
如您所见,“计算:”变为“计算完成”。
解决方案是实现一个检查语句,该语句仅在计算完成后才允许宏继续进行。
hwnd = findTopWindow('Calculating')
while True:
data = dumpWindow(hwnd)
if data[2][1] == 'Calculation Finished.':
break`enter code here`