Como encontrar aplicativo web aberto no desktop

Estou tentando desenvolver uma automação que selecione uma aplicação proprietária no desktop. No entanto, essa aplicação não é instalada no meu desktop. Na verdade ela é aberta depois que eu faço o login na conta da empresa no browser. Não sei dizer precisamente que tipo de aplicação é essa que agente faz o login no browser e ela abre uma janela no desktop. Checando o gerenciador de tarefas aqui, vi que a aplicação abre com um plugin que eu baixo do site do programa.

Abaixo, segue um print do gerenciador de tarefas:
image

Nessa imagem aparece o tal plugin. Tentei usar o método find_app_window mas não funcionou, ao invés, me retornou:

bot = DesktopBot()
    # bot.browse("http://www.botcity.dev")
    app_path = r"C:\Program Files (x86)\GraphOn\AppController\AppController.exe"

    # Abre o aplicativo.
    # bot.execute(app_path)

    main_window = bot.find_app_window(title_re="Domínio Contabilidae Fiscal - Versão: 10.4A-03 - 06")
    print(main_window)

raise ValueError(‘No applications connected. Invoke connect_to_app first.’)
ValueError: No applications connected. Invoke connect_to_app first.

Como eu poderia contornar esse problema? Agradeço desde já pelo suporte.

Olá Matheus, tudo bem?

Neste caso, para conseguir se conectar com a janela de um aplicação Desktop que já esta em execução, você pode usar o Pywinauto para se conectar a essa janela e passa-la para o bot.app como mostro abaixo:


from pywinauto.application import Application
from botcity.core import DesktopBot, Backend


bot = DesktopBot()

# Se conecta a aplicação através do seletor 'título_re'
app = Application(backend="uia").connect(title_re="Domínio Contabilidae Fiscal - Versão: 10.4A-03 - 06")

# Atríbui o objeto Application para 'bot.app'
bot.app = app

# Encontra a janela principal
main_window = bot.find_app_window(title_re="Domínio Contabilidae Fiscal - Versão: 10.4A-03 - 06")
print(main_window)

Veja se essa abordagem funciona, como o erro lançado era relacionado a conexão com a aplicação, acredito que essa manipulação funcione.

Perdão pela demora na resposta, Livia. Consegui solucionar o problema com a biblioteca pygetwindow. Com ela, consigo abrir uma janela do desktop a partir do nome da mesma.

import pygetwindow as gw


titulo_janela = "Título da Janela"

# Obtém todas as janelas com o título especificado
janelas = gw.getWindowsWithTitle(titulo_janela)

# Verifica se foi encontrada alguma janela com o título especificado
if janelas:
    # Seleciona a primeira janela encontrada (você pode iterar sobre a lista para selecionar a janela desejada)
    janela = janelas[0]
    
    # Foca na janela (torna-a ativa)
    janela.activate()
else:
    print("Nenhuma janela encontrada com o título especificado.")