es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Monitorear el proceso en Python.

Estoy utilizando pywinauto para abrir una aplicación y cerrar la ventana de diálogo. Puedo hacer eso, pero quiero verificar la ventana de diálogo desde el momento en que inicio la aplicación hasta que se cierra la aplicación. ¿Cuál es la mejor manera de implementar eso?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para comprobar continuamente si el cuadro de diálogo aparece desde que se abre la aplicación hasta que se cierre, puede utilizar un bucle que se ejecute en segundo plano mientras la aplicación esté abierta. Dentro de este bucle, puede utilizar la función de espera wait de pywinauto para comprobar continuamente la existencia del cuadro de diálogo.

    Aquí hay un fragmento de código de ejemplo:

    from pywinauto import Application
    import time
    
    # Abre la aplicación
    app = Application(backend="uia").start("ruta/hacia/la/aplicación.exe")
    
    # Sigue comprobando la existencia del cuadro de diálogo
    while app.is_process_running():
    try:
        dialog = app.top_window().wait(title="título_del_cuadro_de_diálogo", timeout=1)
        dialog.close()
    except TimeoutError:
        pass
        time.sleep(1)
    
    # Cierra la aplicación
    app.kill()
    

    En este código, el bucle while sigue ejecutándose mientras el proceso de la aplicación esté activo. Dentro del bucle, usamos la función de espera wait con un tiempo de espera de 1 segundo para comprobar continuamente la existencia del cuadro de diálogo. Si se encuentra el cuadro de diálogo, lo cerramos. Si se alcanza el tiempo máximo de espera sin encontrar el cuadro de diálogo, seguimos sin cerrarlo.

    Una vez que se detiene el proceso de la aplicación, se sale del bucle y podemos cerrar la aplicación de manera segura con app.kill().

    Tenga en cuenta que el argumento title en la función wait debe ser modificado para que coincida con el título real del cuadro de diálogo que está buscando.

Comments are closed.