Skip to main content

dominio-net

Biblioteca Python para automatizar operações básicas da interface do sistema Domínio no Windows. A implementação usa o backend UI Automation do pywinauto e expõe as seguintes operações:

  • launch_app
  • perform_login
  • get_main_window_after_login
  • switch_module
  • switch_company
  • find_windows

Requisitos

  • Windows com o sistema Domínio instalado;
  • Python 3.10 ou superior;
  • sessão gráfica desbloqueada durante a automação;
  • permissão para executar o contabil.exe e interagir com suas janelas.

Instalação

Instalação pelo wheel (recomendada)

Baixe o arquivo .whl da versão desejada na página Releases do repositório. Para a versão atual, o arquivo é:

dominio_net-0.2.0-py3-none-any.whl

No projeto que utilizará a biblioteca, crie um ambiente virtual novo:

cd "C:\caminho\do\seu-projeto"
py -m venv .venv

Instale o wheel usando o Python desse ambiente. Ajuste o caminho conforme o local onde o arquivo foi baixado:

.\.venv\Scripts\python.exe -m pip install --upgrade pip
.\.venv\Scripts\python.exe -m pip install "C:\Users\SEU_USUARIO\Downloads\dominio_net-0.2.0-py3-none-any.whl"

Confirme a instalação e a versão:

.\.venv\Scripts\python.exe -c "import dominio_net; print(dominio_net.__version__)"

Resultado esperado:

0.2.0

Também é possível validar os imports públicos:

.\.venv\Scripts\python.exe -c "from dominio_net import launch_app, perform_login, get_main_window_after_login; print('Importação funcionando')"

No VS Code, execute Python: Select Interpreter pela paleta de comandos e selecione:

<pasta-do-projeto>\.venv\Scripts\python.exe

Para atualizar a biblioteca, baixe o wheel da nova versão e execute:

.\.venv\Scripts\python.exe -m pip install --upgrade "C:\caminho\do\novo-wheel.whl"

Uso básico

from dominio_net import (
    AlertState,
    get_main_window_after_login,
    launch_app,
    perform_login,
    switch_company,
)

app = launch_app(r"C:\Contabil\contabil.exe")
perform_login(app, username="meu_usuario", password="minha_senha")

# Aguarda a tela principal e troca para Escrita Fiscal quando necessário.
main_window = get_main_window_after_login(app)

alert_state = AlertState()
switch_company(
    app,
    company_code=123,
    company_name="Empresa de exemplo",
    alert_state=alert_state,
)

API

launch_app(app_path, *, backend="uia", start_timeout=None, start_options=None)

Inicia o executável e devolve a instância conectada de Application. Os argumentos opcionais de start_options são encaminhados para pywinauto.Application.start.

perform_login(app, username, password, ...)

Aguarda a janela Conectando ..., preenche usuário (auto_id="1005") e senha (auto_id="1007") e confirma no botão OK (auto_id="1003"). Os títulos, identificadores, timeout e espera final podem ser configurados. A senha não é registrada nos logs nem incluída nas mensagens de erro.

get_main_window_after_login(app, ...)

Aguarda uma janela cujo título corresponda a Domínio.*. Por padrão verifica se o módulo Escrita Fiscal está no título e chama switch_module caso não esteja. Diferentemente da função original, esta versão devolve a janela principal, facilitando a composição com outras automações.

switch_module(app, module_name="Escrita Fiscal", ...)

Abre o seletor de módulos pela coordenada configurada e seleciona o item pelo nome. A coordenada original (20, 50) continua sendo o padrão, mas pode ser substituída por menu_coordinates=(x, y).

switch_company(app, company_code, ...)

Abre a troca de empresas com F8, seleciona a pesquisa por código, preenche o código e acessa a empresa. AlertState conserva entre chamadas a informação de que houve um alerta na empresa anterior.

find_windows(main_window, max_attempt=5, ...)

Procura a janela Atenção e tenta acionar, nessa ordem, os botões OK e Não. Retorna True quando uma janela foi tratada e False quando nenhuma foi encontrada.

Exceções

Todas as falhas da biblioteca derivam de DominioAutomationError:

  • DominioLaunchError
  • DominioLoginError
  • DominioMainWindowError
  • DominioModuleError
  • DominioCompanyError
  • DominioCompanyAlertError
from dominio_net import DominioAutomationError, launch_app

try:
    app = launch_app(r"C:\Contabil\contabil.exe")
except DominioAutomationError as error:
    print(f"Não foi possível controlar o Domínio: {error}")

Observações de estabilidade

Os títulos e auto_id usados são os observados no rpa-mit. Atualizações do Domínio podem alterar esses identificadores. switch_module ainda depende de uma coordenada de tela para abrir o seletor de módulos; por isso a sessão deve estar visível e com escala/resolução compatíveis.

Release files for dominio-net 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dominio-net 0.2.1
File Size Uploaded
dominio_net-0.2.1.tar.gz 12.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dominio-net 0.2.1
File Interpreter ABI Platform
dominio_net-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 20.8 kB

Release files / dominio_net-0.2.1.tar.gz

Download URL dominio_net-0.2.1.tar.gz
Size 12.1 kB
Tags Source
SHA-256 checksum
How to use checksums
1b5b3516c592a508e3484f27ff95ffbedd0bc458e59d13e745430d145ad72216
BLAKE2b-256 checksum
How to use checksums
6bae5d2d262fb46db5353411e5013747c4556ca871d8d9a64280b332a1301dd1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release files / dominio_net-0.2.1-py3-none-any.whl

Download URL dominio_net-0.2.1-py3-none-any.whl
Size 8.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bf6738a00649677d3dfc7c538565492b1effbe0ca7e5892d6911f02b20fe2d61
BLAKE2b-256 checksum
How to use checksums
9199bbb71dd89b3a721fa8ec3d5c13788a993b5f927e959a9671345f1bc5313c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page