自动化/宏软件语言,库或工具

时间:2012-02-08 08:41:55

标签: macros automation cross-platform web

根据这些信息,您建议使用哪些自动化工具/库/脚本语言?

  • 我有一个C ++ / C#backround
  • 我有一个Python的未来
  • 我使用Windows,但非常喜欢用于共享目的的多平台解决方案

我如何使用这些工具,语言或图书馆执行以下操作?

  • 在最小化的非活动窗口之间传递输入/数据,而不会干扰用户在前台可能正在做的任何事情。

  • 在非活动窗口内搜索/操作相关控件和数据

  • 在最小化的情况下与应用程序GUI交互(GUI控件的屏幕坐标未知)

  • 执行HTTP请求/自动登录或表单子目录。

  • 执行逻辑

以下是我正在尝试解决的一个示例问题:

  

我有一个程序,我称之为“ 会员提取器 ”   网站的会员通过网络联系信息;虽然程序只能是   通过GUI控制;并且没有能力导出   数据呢。 (所以每一条信息,如电子邮件,电话号码等。   必须自动且系统地将1-by-1复制到剪贴板,并粘贴到新的    “Microsoft Excel” 文档)。

     

一旦以有组织的方式复制和保存信息,我需要   将该数据导入多个新的“联系人配置文件”   由“ 通用联系人管理器 ”扩展生成的    “Google Chrome网络浏览器。” excel文档中数据的排序不确定;所以需要对某些列搜索列标题的单元格位置以及某些逻辑进行搜索。


1 个答案:

答案 0 :(得分:1)

执行此操作的一种方法是使用WScript.Shell对象。您可以通过使用WshShell.Run运行程序来自动执行复制和粘贴,然后使用WshShell.SendKeys编写GUI脚本,这样您就可以使用键盘发送通常可以使用的任何组合键。因此,您可以编写可以使用键盘的任何应用程序的脚本。另一个好消息是,您可以将Windows Scripting引擎与任何具有OLE接口(包括Python)的语言一起使用。这是一个(未经测试的)示例:

import sys
import win32api
import win32com.client

shell = win32com.client.Dispatch("WScript.Shell")
shell.Run("notepad " + sys.argv[0])
shell.SendKeys("{Enter}{Enter} You should see the script code in notepad")

尝试将此代码复制到* .py文件中,并像运行任何其他Python代码一样运行它。 默认情况下,你需要win32api包,这是Active Python(ActiveState的Python发行版)。你可以在这里找到:http://www.activestate.com/activepython(它是免费的和开源的),你需要版本2.7。

您还可以使用OLE界面来创建和操作Excel电子表格。 可以在此处找到Python和OLE的一般性讨论:How do I script an OLE component using Python?

这里有一些可能有用的链接:

P.S。至少在第一部分中,它可能更容易长期,并且修改应用程序以转储数据肯定不会那么脆弱(如果这是一个选项)。但是如果这是最好的选择,OLE自动化应该可以工作。