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_appperform_loginget_main_window_after_loginswitch_moduleswitch_companyfind_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.exee 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:
DominioLaunchErrorDominioLoginErrorDominioMainWindowErrorDominioModuleErrorDominioCompanyErrorDominioCompanyAlertError
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)
| File | Size | Uploaded | |
|---|---|---|---|
| dominio_net-0.2.1.tar.gz | 12.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|