worker-automate-hub 0.4.448__py3-none-any.whl → 0.4.449__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- worker_automate_hub/tasks/jobs/conexao_rdp.py +89 -76
- {worker_automate_hub-0.4.448.dist-info → worker_automate_hub-0.4.449.dist-info}/METADATA +1 -1
- {worker_automate_hub-0.4.448.dist-info → worker_automate_hub-0.4.449.dist-info}/RECORD +5 -5
- {worker_automate_hub-0.4.448.dist-info → worker_automate_hub-0.4.449.dist-info}/WHEEL +0 -0
- {worker_automate_hub-0.4.448.dist-info → worker_automate_hub-0.4.449.dist-info}/entry_points.txt +0 -0
@@ -3,6 +3,7 @@ import platform
|
|
3
3
|
import subprocess
|
4
4
|
import socket
|
5
5
|
import pyautogui
|
6
|
+
import os
|
6
7
|
import pygetwindow as gw
|
7
8
|
from rich.console import Console
|
8
9
|
import pygetwindow as gw
|
@@ -55,16 +56,10 @@ class RDPConnection:
|
|
55
56
|
return ping_alcancado and porta_aberta
|
56
57
|
|
57
58
|
async def clicar_no_titulo(self):
|
58
|
-
"""
|
59
|
-
Função para clicar no título das janelas de Conexão de Área de Trabalho Remota
|
60
|
-
com o botão direito do mouse e executar comandos.
|
61
|
-
"""
|
62
59
|
janelas_rdp = [
|
63
60
|
win
|
64
61
|
for win in gw.getAllTitles()
|
65
|
-
if
|
66
|
-
or "Remote Desktop Connection" in win
|
67
|
-
or "Conexão de Área de Trabalho Remota" in win
|
62
|
+
if self.ip in win
|
68
63
|
]
|
69
64
|
|
70
65
|
for titulo in janelas_rdp:
|
@@ -74,88 +69,98 @@ class RDPConnection:
|
|
74
69
|
continue
|
75
70
|
|
76
71
|
console.print(f"Processando janela: {titulo}")
|
77
|
-
|
78
|
-
# Obtém as coordenadas da janela
|
79
72
|
x, y = janela.left, janela.top
|
80
73
|
|
81
74
|
try:
|
82
|
-
|
83
|
-
pyautogui.
|
84
|
-
|
85
|
-
|
86
|
-
await worker_sleep(
|
87
|
-
pyautogui.press("down", presses=7, interval=0.1)
|
88
|
-
await worker_sleep(5)
|
75
|
+
pyautogui.moveTo(x + 2, y + 2)
|
76
|
+
pyautogui.hotkey("alt", "space")
|
77
|
+
await worker_sleep(2)
|
78
|
+
pyautogui.press("down", presses=6, interval=0.1)
|
79
|
+
await worker_sleep(2)
|
89
80
|
pyautogui.hotkey("enter")
|
90
|
-
await worker_sleep(
|
81
|
+
await worker_sleep(2)
|
91
82
|
pyautogui.hotkey("enter")
|
92
83
|
break
|
93
84
|
|
94
85
|
except Exception as e:
|
95
86
|
console.print(f"Erro ao interagir com a janela {titulo}: {e}")
|
96
|
-
|
87
|
+
|
88
|
+
async def open_rdp(self):
|
89
|
+
base_path = os.path.join("worker_automate_hub", "tasks", "jobs")
|
90
|
+
rdp_file_path = os.path.join(base_path, "connection.rdp")
|
91
|
+
os.makedirs(base_path, exist_ok=True)
|
92
|
+
|
93
|
+
rdp_content = f"""screen mode id:i:1
|
94
|
+
desktopwidth:i:1920
|
95
|
+
desktopheight:i:1080
|
96
|
+
use multimon:i:0
|
97
|
+
session bpp:i:32
|
98
|
+
compression:i:1
|
99
|
+
keyboardhook:i:2
|
100
|
+
displayconnectionbar:i:1
|
101
|
+
disable wallpaper:i:0
|
102
|
+
allow font smoothing:i:1
|
103
|
+
allow desktop composition:i:1
|
104
|
+
disable full window drag:i:0
|
105
|
+
disable menu anims:i:0
|
106
|
+
disable themes:i:0
|
107
|
+
disable cursor setting:i:0
|
108
|
+
bitmapcachepersistenable:i:1
|
109
|
+
full address:s:{self.ip}
|
110
|
+
username:s:{self.user}
|
111
|
+
winposstr:s:0,1,{(1920 // 4)},{(1080 // 4)},{(1920 // 4) + (1920 // 2)},{(1080 // 4) + (1080 // 2)}
|
112
|
+
"""
|
113
|
+
|
114
|
+
try:
|
115
|
+
with open(rdp_file_path, "w") as file:
|
116
|
+
file.write(rdp_content)
|
117
|
+
print(f"Arquivo RDP criado: {rdp_file_path}")
|
118
|
+
except Exception as error:
|
119
|
+
print(f"Erro ao montar o arquivo RDP: {error}")
|
120
|
+
return
|
121
|
+
|
122
|
+
try:
|
123
|
+
subprocess.Popen(["mstsc", rdp_file_path], close_fds=True, start_new_session=True)
|
124
|
+
console.print("Conexão RDP iniciada.")
|
125
|
+
except Exception as error:
|
126
|
+
console.print(f"Erro ao abrir a conexão RDP: {error}")
|
127
|
+
|
97
128
|
async def conectar(self):
|
98
129
|
console.print(f"Iniciando cliente RDP para {self.ip}")
|
99
130
|
try:
|
100
|
-
pyautogui.hotkey("win", "d")
|
101
|
-
await worker_sleep(5) # Tempo para garantir que todas as janelas sejam minimizadas
|
102
|
-
console.print("Todas as janelas minimizadas com sucesso.")
|
103
|
-
|
104
|
-
subprocess.Popen(["mstsc", f"/v:{self.ip}"], close_fds=True, start_new_session=True)
|
105
|
-
await worker_sleep(10) # Tempo aumentado para garantir abertura
|
106
|
-
|
107
|
-
console.print("Procurando janela 'Ligação ao ambiente de trabalho remoto'")
|
108
|
-
try:
|
109
|
-
windows = gw.getWindowsWithTitle("Ligação ao ambiente de trabalho remoto")
|
110
|
-
except:
|
111
|
-
windows = gw.getWindowsWithTitle("Conexão de Área de Trabalho Remota")
|
112
|
-
|
113
|
-
if not windows:
|
114
|
-
logger.warning("Tentando encontrar janela com título em inglês 'Remote Desktop Connection'")
|
115
|
-
windows = gw.getWindowsWithTitle("Remote Desktop Connection")
|
116
|
-
|
117
|
-
if not windows:
|
118
|
-
logger.error("Janela de RDP não encontrada.")
|
119
|
-
return False
|
120
|
-
|
121
|
-
rdp_window = windows[0]
|
122
|
-
console.print(f"Janela '{rdp_window.title}' encontrada. Focando na janela.")
|
123
|
-
|
124
|
-
# Restaurar janela se estiver minimizada
|
125
|
-
if rdp_window.isMinimized:
|
126
|
-
rdp_window.restore()
|
127
|
-
await worker_sleep(5)
|
128
|
-
|
129
|
-
# Redimensionar para 50% da tela
|
130
|
-
screen_width, screen_height = pyautogui.size()
|
131
|
-
new_width = screen_width // 2
|
132
|
-
new_height = screen_height // 2
|
133
|
-
rdp_window.resizeTo(new_width, new_height)
|
134
|
-
rdp_window.moveTo(screen_width // 4, screen_height // 4)
|
135
|
-
console.print(f"Janela redimensionada para {new_width}x{new_height}.")
|
136
|
-
|
137
|
-
rdp_window.activate()
|
138
|
-
await worker_sleep(5) # Tempo extra para garantir que a janela está ativa
|
139
|
-
|
140
|
-
# Clique para garantir o foco
|
141
|
-
pyautogui.click(rdp_window.left + 50, rdp_window.top + 50)
|
142
131
|
await worker_sleep(3)
|
132
|
+
await self.open_rdp()
|
133
|
+
await worker_sleep(5)
|
143
134
|
|
144
|
-
|
145
|
-
|
135
|
+
console.print("Procurando janela RDP")
|
146
136
|
try:
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
137
|
+
possible_titles = ["Conexão de Área de Trabalho Remota", "Ligação ao ambiente de trabalho remoto"]
|
138
|
+
app = None
|
139
|
+
app_window = None
|
140
|
+
|
141
|
+
for title in possible_titles:
|
142
|
+
try:
|
143
|
+
app = Application(backend="uia").connect(title=title)
|
144
|
+
app_window = app.window(title=title)
|
145
|
+
console.print(f"Janela encontrada: {title}")
|
146
|
+
break
|
147
|
+
except Exception:
|
148
|
+
continue
|
149
|
+
|
150
|
+
if not app or not app_window:
|
151
|
+
raise Exception("Nenhuma janela com título correspondente foi encontrada.")
|
152
|
+
|
153
|
+
app_window.set_focus()
|
154
|
+
console.print("Janela RDP ativada.")
|
155
|
+
|
156
|
+
pyautogui.press("left")
|
157
|
+
await worker_sleep(1)
|
158
|
+
pyautogui.hotkey("enter")
|
159
|
+
await worker_sleep(3)
|
160
|
+
|
161
|
+
except Exception as e:
|
162
|
+
console.print(f"Erro ao ativar a janela RDP: {e}", style="bold red")
|
163
|
+
|
159
164
|
|
160
165
|
console.print("Inserindo senha.")
|
161
166
|
pyautogui.write(self.password, interval=0.1)
|
@@ -165,9 +170,18 @@ class RDPConnection:
|
|
165
170
|
await worker_sleep(5)
|
166
171
|
pyautogui.press("enter")
|
167
172
|
console.print("Credenciais inseridas.")
|
168
|
-
await worker_sleep(5)
|
173
|
+
await worker_sleep(5)
|
169
174
|
|
170
175
|
console.print("Conexão RDP ativa. Mantendo o script em execução.")
|
176
|
+
|
177
|
+
try:
|
178
|
+
base_path = os.path.join("worker_automate_hub", "tasks", "jobs")
|
179
|
+
rdp_file_path = os.path.join(base_path, "connection.rdp")
|
180
|
+
if os.path.exists(rdp_file_path):
|
181
|
+
os.remove(rdp_file_path)
|
182
|
+
except Exception as error:
|
183
|
+
console.print(f"Erro ao deletar arquivo 'connection.rdp'. Error: {error}")
|
184
|
+
|
171
185
|
return True
|
172
186
|
except Exception as e:
|
173
187
|
logger.error(f"Erro ao tentar conectar via RDP: {e}")
|
@@ -191,7 +205,6 @@ async def conexao_rdp(task: RpaProcessoRdpDTO) -> RpaRetornoProcessoDTO:
|
|
191
205
|
|
192
206
|
await rdp.clicar_no_titulo()
|
193
207
|
|
194
|
-
# Mantém o script ativo para manter a conexão RDP aberta
|
195
208
|
return RpaRetornoProcessoDTO(
|
196
209
|
sucesso=True,
|
197
210
|
retorno="Conexão RDP estabelecida com sucesso.",
|
@@ -32,7 +32,7 @@ worker_automate_hub/models/dto/rpa_sistema_dto.py,sha256=sLkmJei8x6sl-1-IXUKDmYQ
|
|
32
32
|
worker_automate_hub/tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
33
33
|
worker_automate_hub/tasks/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
34
34
|
worker_automate_hub/tasks/jobs/coleta_dje_process.py,sha256=rf4fW-FaHUl1MS7b03z4cwI3zHfNw8FWxvjvNY3Xn20,28773
|
35
|
-
worker_automate_hub/tasks/jobs/conexao_rdp.py,sha256=
|
35
|
+
worker_automate_hub/tasks/jobs/conexao_rdp.py,sha256=vbbEsGdpgISBBVnJo8FI81zqzponqEPIAT1kNLsxizQ,9183
|
36
36
|
worker_automate_hub/tasks/jobs/descartes.py,sha256=RIjrZIzkW77NiKeXbxFN9k872cz3fl9cG1m5TJpjmmY,40134
|
37
37
|
worker_automate_hub/tasks/jobs/ecac_estadual_go.py,sha256=aPckQRlRozFS_OK3C9wNdMCmqO6AM4djwqY2uSSaPmo,20687
|
38
38
|
worker_automate_hub/tasks/jobs/ecac_estadual_main.py,sha256=FFpAdtZLO4uelWZooCVpm4JePv_iDt5nwVKrk1ipZJQ,1599
|
@@ -70,7 +70,7 @@ worker_automate_hub/utils/updater.py,sha256=en2FCGhI8aZ-JNP3LQm64NJDc4awCNW7UhbV
|
|
70
70
|
worker_automate_hub/utils/util.py,sha256=JkSKFgnI6geDEIlpaJJ5Btd7XdPllfUSFcjvPAaG-bo,125954
|
71
71
|
worker_automate_hub/utils/utils_nfe_entrada.py,sha256=p5r_L5k7gqCBvV8v6dbLFM6INKiSpGc4Gegid0_YAh4,29017
|
72
72
|
worker_automate_hub/worker.py,sha256=tftQpX8liC-_0_bOUf1YYzXSCvloMQBvjmQ6lzfEE-c,4816
|
73
|
-
worker_automate_hub-0.4.
|
74
|
-
worker_automate_hub-0.4.
|
75
|
-
worker_automate_hub-0.4.
|
76
|
-
worker_automate_hub-0.4.
|
73
|
+
worker_automate_hub-0.4.449.dist-info/entry_points.txt,sha256=sddyhjx57I08RY8X7UxcTpdoOsWULAWNKN9Xr6pp_Kw,54
|
74
|
+
worker_automate_hub-0.4.449.dist-info/METADATA,sha256=VrWE59j1n-zIdItKYymXrHmkzwmCADS3IXdY8LfuM7w,2895
|
75
|
+
worker_automate_hub-0.4.449.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
76
|
+
worker_automate_hub-0.4.449.dist-info/RECORD,,
|
File without changes
|
{worker_automate_hub-0.4.448.dist-info → worker_automate_hub-0.4.449.dist-info}/entry_points.txt
RENAMED
File without changes
|