0

因此,我运行了一个 sikuli 脚本,该脚本每 10 分钟连续监视并执行一次所述动作。然而,由于各种原因,有时运行会中断,如果脚本停止运行,则无法发出警报。

所以我尝试运行一个 python 脚本,它可以监控 sikuli IDE 的窗口。当脚本运行时,窗口不再可见。因此,如果窗口再次可见,python 脚本将运行一个批处理文件,该文件将触发所需的警报。以下是我通过在此站点中查看其他示例而制作的脚本:

WindowName = "SikulixIDE 1.1.3 - C:\\Users\\TestUser\\Downloads\\testing2.sikuli"

while True:
    try:
        if win32ui.FindWindow(None, WindowName):
            subprocess.call([r'C:\Users\TestUser\Documents\notification.bat'])
            break
    except win32ui.error:
        #print("its not running!")
        continue

我在上面的代码中遇到的问题是,即使 sikuli 脚本正在运行并且我实际上看不到 IDE 窗口(带有 WindowName 的窗口),它仍然会找到它并进入 if 块。我不确定这里出了什么问题,如果窗口在任务管理器中不可见,FindWindow 应该找不到它,对吗?

4

1 回答 1

0

我会说你正试图以非常复杂的方式做到这一点。

我强烈建议查看 sikuli 的 '-r' 选项,并只编写一个 sikuli 脚本来自行处理异常并且不需要监控。

在这种情况下,如果您确实需要对脚本进行额外的监控,那会更容易,因为您可以使用特定的命令行(而不是可见窗口)查找进程

于 2021-01-12T15:25:52.890 回答