Hoje, vamos explorar uma fascinante jornada de automação do mouse em Python, onde revelaremos um código infalível e também apresentaremos o módulo "mousekey", uma ferramenta elaborada para proporcionar ainda mais funcionalidades!
Você já se deparou com a frustração de não conseguir automatizar tarefas do mouse com os módulos tradicionais, como "pyautogui", "pywin32" ou "pywinauto"? Não se preocupe! Neste vídeo, temos a solução definitiva que sempre funciona!
O código que vamos apresentar é uma implementação especial utilizando as bibliotecas "ctypes" e "wintypes", que permitem interagir diretamente com o sistema operacional Windows para automatizar o mouse. Esse código é simples e eficaz, contornando problemas que outros módulos possam enfrentar.
Depois de mostrarmos o código em ação, vamos mergulhar em uma jornada emocionante ao apresentar o módulo "mousekey", uma criação exclusiva que vai além do que os outros oferecem. O "mousekey" é uma ferramenta poderosa que escrevi, com recursos adicionais para automatizar tarefas complexas com o mouse e teclado.
E, para provar a eficácia do código, vamos demonstrar uma automação prática em que o mouse realiza uma série de cliques com intervalos precisos.
Se você deseja aprender a automatizar tarefas com o mouse de forma confiável e desvendar os recursos do "mousekey", este vídeo é imperdível!
Assista agora, curta o conteúdo, compartilhe com seus amigos programadores e inscreva-se no canal para receber mais dicas e ferramentas exclusivas!
Código do "mousekey" disponível em: https://github.com/hansalemaos/mousekey
Código no vídeo:
import ctypes
from ctypes import wintypes
user32 = ctypes.WinDLL("user32")
ULONG_PTR = (ctypes.c_ulong
if ctypes.sizeof(ctypes.c_void_p) ==
4 else ctypes.c_ulonglong)
class POINT_(ctypes.Structure):
fields = [("x", ctypes.c_int), ("y", ctypes.c_int)]
class CURSORINFO(ctypes.Structure):
fields = [
("cbSize", ctypes.c_uint),
("flags", ctypes.c_uint),
("hCursor", ctypes.c_void_p),
("ptScreenPos", POINT_),
]
class MOUSEINPUT(ctypes.Structure):
fields = (
("dx", wintypes.LONG),
("dy", wintypes.LONG),
("mouseData", wintypes.DWORD),
("dwFlags", wintypes.DWORD),
("time", wintypes.DWORD),
("dwExtraInfo", ULONG_PTR),
)
class KEYBDINPUT(ctypes.Structure):
fields = (
("wVk", wintypes.WORD),
("wScan", wintypes.WORD),
("dwFlags", wintypes.DWORD),
("time", wintypes.DWORD),
("dwExtraInfo", ULONG_PTR),
)
class HARDWAREINPUT(ctypes.Structure):
fields = (
("uMsg", wintypes.DWORD),
("wParamL", wintypes.WORD),
("wParamH", wintypes.WORD),
)
INPUT_MOUSE = 0
class INPUT(ctypes.Structure):
class _INPUT(ctypes.Union):
fields = (("ki", KEYBDINPUT),
("mi", MOUSEINPUT),
("hi", HARDWAREINPUT))
anonymous = ("_input",)
fields = (("type", wintypes.DWORD), ("_input", _INPUT))
def _mouse_click(flags):
x = INPUT(type=0, mi=MOUSEINPUT(0, 0, 0, flags, 0, 0))
user32.SendInput(1, ctypes.byref(x), ctypes.sizeof(INPUT))
def left_mouse_down():
_mouse_click(2)
def left_mouse_up():
_mouse_click(4)
from time import sleep
sleep(5)
for x in range(10):
left_mouse_down()
sleep(.004)
left_mouse_up()
sleep(1)
#python #automacaodetarefas #mouseautomation #programacao #pythonbrasil
Информация по комментариям в разработке