Wendigo是一个用于Windows的RPA库(64位)。
Wendigo的Python项目详细描述
温迪戈比
在
WendigoPy是一个用于Windows的RPA库(64位)。在
小心
关于模拟
WendigoPy使用SendInput来模拟输入(实现为WendigoCs)。
如果你是新手,请注意以下事项。在
- 它不会等到输入被处理。在
- 您发送的输入不能被取消。在
- 因此,不要一次或同时发送多个输入。
一旦你做到了,你发送的信息将是不可阻挡的。在 - 按下的键必须松开。
如果您在程序中按下了一些键,请手动按下并释放这些键以恢复。在 - 有些应用程序忽略了这种类型的模拟。在
关于出口
如果出了问题,你应该立即阻止温迪戈。
这些是退出的方法。在
- 按控制台上显示的退出键。
如果你不换的话,这些键是两个换档键(LShift+RShift)。在 - 右键单击显示“W”的任务栏图标,然后选择“退出”。在
- 如果是紧急情况,请按Ctrl+Alt+Del并由任务管理器终止流程。
这种方式阻止了发送新的输入,但请记住我之前告诉过您的“您发送的输入将是不可阻挡的”。在
要求
- Windows(64位)
在Windows 10上测试。在 - Python 3
在3.8.0上测试。在 - Tesseract
如果你想用OCR的话。在
安装
pip install wendigo
使用
Wendigo是一个事件驱动的应用程序。在
^{pr2}$钩子
像这样钩住键盘或鼠标的事件。
即使另一个窗体处于活动状态,它也可以工作。在
from typing import List
from wendigo import Keys, Wendigo as w
from wendigo.device import DeviceState
from wendigo.screen import TargetForm
def key_up(state: DeviceState):
# Shows which keys are pressed.
print(state.key.keys)
# Shows where the cursor is.
print(state.mouse.position)
# Shows the state of wheel.
print(state.mouse.scroll)
# Runs key_up when you release Ctrl+Alt+W.
w.event_dispatcher.key_up("key_up", [Keys.ControlKey, Keys.AltKey, Keys.W], key_up)
def mark_by_drag(targets: List[TargetForm]):
# Shows area where you marked.
print(targets[0].area)
# Runs mark_by_drag when you drag with Ctrl.
w.target_marker.mark_by_drag(mark_by_drag, keys=[Keys.ControlKey])
# Blocks until Wendigo is stopped.
w.run()
模拟
像这样模拟键盘或鼠标事件。
确保在按键之前激活了文本编辑器。在
from wendigo import Keys, Point, Wendigo as w
from wendigo.device import DeviceState, Inputs
def key_up(state: DeviceState):
# Types "Hello World!".
w.event_simulator.type_text("Hello World!")
# Need more manual way?
# Let's type that again in another way.
w.event_simulator.simulate(Inputs() \
.key_press(Keys.Enter) \
.key_down(Keys.ShiftKey).key_press(Keys.H).key_up(Keys.ShiftKey) \
.key_press(Keys.E).key_press(Keys.L, n=2).key_press(Keys.O) \
.key_press(Keys.Space) \
.key_down(Keys.ShiftKey).key_press(Keys.W).key_up(Keys.ShiftKey) \
.key_press([Keys.O, Keys.R, Keys.L, Keys.D]) \
.key_down(Keys.ShiftKey).key_press(Keys.D1).key_up(Keys.ShiftKey)
)
# Move cursor to (0, 0).
w.event_simulator.point_absolute(Point(0, 0))
# Runs key_up when you release Ctrl+Alt+W.
w.event_dispatcher.key_up("key_up", [Keys.ControlKey, Keys.AltKey, Keys.W], key_up)
# Blocks until Wendigo is stopped.
w.run()
其他
Wendigo还有其他工人。在
- 活动模仿者
将输入记录到文件并播放。在 - 表单控制器
对表单做些什么,比如让它们活跃起来并捕捉它们的图形。在 - 目标搜索者
在屏幕上找到目标。在 - 文本阅读器
通过Tesseract从图像中读取文本。在 - 时间守护者
它只是一个同步计时器。在
许可证
这个库是在Apache许可证2.0下发布的。在
- 项目
标签: