【问题标题】:Interact with client software与客户端软件交互
【发布时间】:2014-01-30 14:25:20
【问题描述】:

我知道这没有答案,但我是计算机工程方面的菜鸟,我想知道我应该阅读或学习什么才能与桌面客户端软件交互。这是一个例子:

我玩扑克,我希望能够与我的扑克客户互动,我不想做任何花哨的或任何非法的此类机器人。例如,我想要一个程序来读取我的手牌,并且在玩完之后能够分析一些手牌,或者在线分析一些 HUD Helper。

对于那些玩扑克的人,我希望能够在某些牌桌中自动就座,或者有一个迷你 HUD 告诉我我的 BB 和我的对手。我知道这有很好的程序,我使用它们。只是我想学习如何从这些客户那里读取信息以及如何与他们互动。我谈论扑克,但我想学习如何与其他程序交互。如果有人能告诉我从哪里开始我的学习,即使我从未将我的知识付诸实践,知道一些事情也会很高兴。只是我想知道事情是如何运作的。

PS:我应该使用 C/C++ 吗?我已经学习了 Java,现在我正在学习 Python 和 JS。

我希望我解释了自己,对不起我的英语。 谢谢。

【问题讨论】:

    标签: client interaction poker


    【解决方案1】:

    与扑克客户互动有多种选择,或多或少是困难的或复杂的,并且有效取决于您想要完成的任务。

    为了获取信息,您可以通过网络嗅探数据,通过 API 挂钩注入代码,通过屏幕抓取和 OCR 读取信息,解析手牌历史...

    要模拟用户操作,您可以以编程方式执行鼠标点击和击键,直接向扑克客户端的 UI 组件发送消息,甚至直接与扑克服务器交互,向其发送您自己的预期信息(此选项,以及从网络中嗅探数据以获取信息,可能非常困难,因为您必须处理(可能是私有的)协议、数据加密等)。

    如果您了解 Java,请尝试使用 awt 的 Robot 类。有了它,您可以读取屏幕像素、获取屏幕截图、执行鼠标点击和击键...我确信 Python 中有类似的工具,但不知道它们。

    另一个用于 UI 自动化的高级工具是 Sikuli。它可能对您的目的有用。

    我希望这些信息对你有用。

    【讨论】:

    • 非常感谢您的回答。我将开始在 Java 上尝试 Robor 类,并学习如何从网络中嗅探数据。问题是当我搜索屏幕报废“我的朋友”时,谷歌总是向我显示网络报废的结果,所以我有点不知道要使用什么技术或语言。通过网络嗅探数据也是如此,但那是因为我是个菜鸟,所以我还有很长的路要走,但我认为这个项目是学习计算机科学的好方法。
    • 正如我之前告诉你的,嗅探数据可能非常困难,因为扑克客户端接收的数据很可能是加密的......你最好尝试屏幕抓取或手牌历史解析。一些扑克客户端会在聊天中向您显示手牌的事件,所以也许您可以使用 Robot 类来选择该文本,将其复制到剪贴板中,然后对其进行解析以获取信息……这只是一个想法。我只在提到的类中使用了像素/图像匹配和 OCR,它或多或少地工作得很好。也看看Sikuli,我相信它可能有用,我认为你可以从Java中使用它。
    • 再次感谢您的回答。很抱歉之前没有回答,我正在准备一些考试,没有时间检查机器人课程和Sikuli。我一直在尝试它们,它们是非常好的工具。现在我必须尝试解析聊天中的文本。对于这些事情,我需要一个用于 Java 的 OCR 库。现在我正在其他主题中寻找它们。下一步是嗅探数据的工具,但一点一点,现在我有好东西可以玩了。感谢您的回答。
    猜你喜欢
    • 2015-08-15
    • 2013-03-10
    • 1970-01-01
    • 1970-01-01
    • 2012-10-10
    • 1970-01-01
    • 2015-01-02
    • 2013-10-03
    • 2020-11-06
    相关资源
    最近更新 更多