Python – попытка выяснить, работает ли в данный момент скрипт sikuli

Итак, у меня запущен скрипт sikuli, который постоянно отслеживает и выполняет указанное действие каждые 10 минут. Однако по разным причинам иногда запуск прерывается, и нет возможности предупредить, если скрипт перестанет работать.

Поэтому я попытался запустить скрипт на Python, который будет контролировать окно IDE sikuli. Когда скрипт запускается, окно больше не видно. Поэтому, если окно снова станет видимым, скрипт 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 не сможет его найти, верно?


person Dennis    schedule 14.07.2020    source источник


Ответы (1)


Я бы сказал, что вы пытаетесь сделать это очень сложным способом.

Я настоятельно рекомендую обратить внимание на параметр sikuli '-r' и написать только один скрипт sikuli, который будет сам обрабатывать исключения и не будет нуждаться в мониторинге.

В этом случае, если вам действительно нужен дополнительный мониторинг скрипта, это будет проще, так как вы можете искать процесс с помощью конкретной командной строки (вместо видимого окна).

person TestMechanic    schedule 12.01.2021