首页 文章

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

提问于
浏览
2

Based on this info, what automation tools / libraries / scripting languages do you suggest?

  • 我有一个C / C#backround

  • 我有一个Python的未来

  • 我使用Windows,但非常喜欢用于共享目的的多平台解决方案

How would I use those Tool(s), Language(s), or Library(s) to do the following?

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

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

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

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

  • 执行逻辑

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

我有一个程序,我称之为“会员提取器”,通过网络提取我网站的会员联系信息;虽然程序只能通过GUI控制;并且还没有能够导出数据 . (因此,每条信息,如电子邮件,电话号码等,必须自动和系统地1-by-1复制到剪贴板,并粘贴到新的“Microsoft Excel”文档中) . 一旦以有组织的方式复制和保存信息,我需要将该数据导入由“Google Chrome Web浏览器”的“Universal Contact Manager”扩展程序生成的多个新“联系人配置文件” . excel文档中数据的排序不确定;所以需要对某些列搜索列 Headers 的单元格位置以及某些逻辑进行搜索 .


1 回答

  • 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(它's free and open-source), you' d想要版本2.7 .

    您还可以使用OLE接口来创建和操作Excel电子表格 . Python和OLE的一般讨论可以在这里找到:How do I script an OLE component using Python?

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

    P.S. 至少对于第一部分来说,长期可能更容易,并且修改应用程序以转储数据肯定不会那么脆弱(如果这是最好的选择) .

相关问题