【问题标题】:Make python automations on current window在当前窗口上进行 python 自动化
【发布时间】:2015-04-22 20:06:47
【问题描述】:

我正在尝试制作一个可以使用键盘编写/执行命令的简单 python 脚本。

示例:打开 Photoshop 并在 1 秒后执行“全选并删除,然后保存”(control + a、delete、control + s)键。

Example2 : open taskmanager (control + alt + del) 使用 N 键移动到进程中的 N 部分并每隔几分钟使用 end task (alt + e)...

此外,要创建一个函数,如果我按 alt+f1(例如),python 脚本正在运行,它会执行(control + alt + del)

【问题讨论】:

  • 你应该检查一些注册表信息。即使这样,其中一些也将无法做到。
  • 我会很感激任何提示...我只想让 python 使用键盘。
  • 我真的希望用纯 python 来完成,我听说我可以使用 AutoIt 在 1 行中使用它..
  • 与其用 UI 动作来表达这些事情,为什么不直接编写脚本来做这些事情呢?比如杀死一个进程,你不需要脚本来与任务管理器交互。

标签: python


【解决方案1】:

您可能想试试SikuliX。这是一个基于图像的框架,可以与 Python(通过 Jython)、Ruby(通过 JRuby)和 Java(通过可选的 Java API)一起使用。

自动化屏幕上的某些行为非常有用,例如打开 Photoshop、单击屏幕上的区域或通过按键输入。例如:

//Using Java API, however the idea is the same for Python
Screen screen = new Screen()
screen.type(new Pattern("some-image.png"), "keyboard");

在 Python 中:

def changed(event):
    print "something changed in ", event.region
    for ch in event.changes:
            ch.highlight() # highlight all changes
    sleep(1)
    for ch in event.changes:
            ch.highlight() # turn off the highlights

with selectRegion("select a region to observe") as r: # 任何大于 50 像素的 r 变化都会触发变化函数 onChange(50, 改变) 观察(背景=真)

wait(30) #另一种方式观察30秒 r.stopObserver()

这是一项相当多的工作,但它允许您创建非常健壮的脚本来执行您想要的操作。您还可以通过subprocess 将控制台输出通过管道传回您的 Python 脚本,以便根据环境更改脚本行为。

休息完全受限于你的想象力。

注意:并非所有事情都必须使用 SikuliX 来完成,事实上我不建议实际做所有事情。只是某些可能需要在您的屏幕上进行特定行为的事情。

如果你严格使用 Ubuntu,你可能还想看看 Xpresser


更新

所以我曾与 AutoItPyAutoIt 合作过,并且真的认为它们是您希望实现的目标的合适工具,因为它们对某些应用程序非常有效。

【讨论】:

  • @ItachiSama 我已经为你更新了答案。如果你还没有检查过替代品,你可能会。如果任何一个答案都足够,请将它们标记为正确以关闭此问题。
【解决方案2】:

为此,您需要与本机消息传递接口集成。 Sikuli 是一个很好的测试工具,因此(根据@juxhin 的建议)如果您可以限制自己使用 Jython,那么它是一个明智的候选人。

但是,如果您无法忍受这种情况,您可能需要针对 Linux 和 Windows 使用不同的解决方案。例如:

【讨论】:

    猜你喜欢
    • 2015-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    相关资源
    最近更新 更多