与Windows应用程序的GUI元素交互

时间:2017-02-18 13:06:33

标签: windows shell user-interface chess

首先,我想了解SCIDvsPC项目的工作。我知道基础的SCID已经在很多年前停止了,开发人员在扩展它并为国际象棋领域做出贡献方面做得很好。我们学院的第六学期有一个小项目。我们决定在Chess Next Move Analyzer上启动一个基于各种过滤器并实现自学和机器学习的项目。

过去两个月我一直在研究项目构想。实际上我们需要导入一些过滤器上定义的几个游戏,并从生成的PGN文件中读取和分析。例如,如果用户选择根据2000-2500的评级范围获得预测的下一个最佳移动,则我们的程序应该仅导出和分析仅具有此范围内的对手的PGN文件。我知道该项目可以做到这一切,但我对如何实现这一点感到困惑。我的意思是我必须手动输入动作,然后点击生成PGN'但是如何让我的程序执行此操作,即从用户那里获取输入(如前3次移动),让项目运行这些移动(我必须手动),然后生成PGN文件并将其保存在文件夹中。

我在网上浏览与Windows中的GUI元素交互(我们也没有使用Linux的问题),并了解了Microsoft UI Automation,Python,Java和C#软件以及类似COM的内容。该软件是否支持COM或其中任何一个,或者您是否已经开发了这样的功能?请你帮我指导一下吗?

如果要求概括,我想要做的是与GUI Elements进行交互,无论是任何应用程序。以记事本为例。假设我想在其上打开一个文件,找到并替换一个特定的单词。现在,我知道如何手动执行此操作,但是当我有超过数千个文件时,我需要某种程序来为我执行此操作。在我的案例中,像SCID这样的特定程序是否有一些预先构建的功能(有关COM的读取位)来处理这个问题?这涉及哪个编程语言域?使用Linux对我有用吗?

2 个答案:

答案 0 :(得分:1)

  

以记事本为例。假设我要在其上打开一个文件,找到   并替换一个特定的单词。现在,我知道如何手动完成此操作   当我有超过数千个文件时,我需要某种程序来做   这对我来说。在我的案例中,像SCID这样的特定程序有一些   功能(读取有关COM的位)预先构建来处理这个?

  • 您的情况听起来非常具体,所以我怀疑您是否能够找到一个预先存在的程序来为您完成此操作。含义:您必须自己编写代码。
  

在哪个编程语言域中会出现这种情况?

  • 嗯,这可能是在许多不同的编程语言中完成的。一个简单的shell脚本就可以实现你给出的记事本示例。
  

使用Linux对我有更多帮助吗?

  • 不,无论您是在Windows,macOS还是Linux发行版中编写它,您的目标似乎都可以通过简单的shell脚本实现。

答案 1 :(得分:1)

@ SB87给了你一些有用的提示,我想扩大他的答案。

  • 抱歉,我没有想到你知道你在说什么。强化学习(比自学更好的术语)和机器学习并不适合大学项目。在博士或研究水平上,考虑让自己进入大学,甚至在考虑这样的事情之前。

  • UI自动化是可行的,但容易出错且速度慢。如果你想这样做,你就可以编写一个控制台程序。您提到了有关用户输入的内容,您是否想要在用户鼠标键盘输入上应用机器学习?它不会起作用。国际象棋的机器学习需要成百上千的训练集。

我认为你应该淡化项目并专注于你可以实现的目标。