2011-10-30 53 views
4

我想写一个可以在Windows上玩纸牌的程序。用户可以运行该程序并打开纸牌,然后随着卡片的移动进行观察。它很容易编写的程序,将发挥纸牌AI(我显然没有Windows纸牌的源代码)。我能想到的一个方法就是如果我拍下了单人纸牌的图像并分析它以确定纸牌的当前状态,那么我可以将纸牌的当前状态传递给我的程序,从而确定下一步的行动。但是,我将如何执行点击命令。如何编写可与其他程序交互的程序

更一般地说,我想编写一个程序,可以像用户那样与另一个程序进行交互。 我有C,C++,Java,Ruby的经验。但是我不知道如何开始这件事,或者这是否可以完成?

+1

关于Java这样做,这将是乏味的。 – Mob

+4

*“易于编写AI程序,可以玩单人纸牌”*是吗?请与我们分享片段。 *“我发现了一个非常出色的证据,这个评论太小而无法包含。”* –

回答

1

Java不是这样做的语言。为了促进这样的功能,您需要严重依赖Windows API,尤其是那些允许您注入输入的API。作为一个起点,我可以建议你熟悉Windows应用程序如何实际处理输入。 This是关于这个问题的好文章。

0

Windows有一个方法SendInput它可以用来编程控制鼠标和键盘。如果你知道你想控制这个应用程序可能就足够了。但是,您可能还想检查屏幕上的内容。为此,您需要GetPixel

0

我个人很不喜欢屏幕抓取技术,因为它们经常受到底层应用程序更改或屏幕分辨率更改的影响。
但是,这似乎是你可以在这里采用的一种方法。
我同意java不是这里的最佳选择。
搜索“屏幕刮板API”,你应该找到一些启动你的东西。

更新:

先打似乎看好的是http://community.screen-scraper.com/API
这与直觉相反似乎是基于Java的。

+1

您提供的链接是用于抓取wb网站的 - 从常见问题**屏幕 - 刮板仅用于从网站上抓取数据。**! – Yahia

+0

哦,以及我认为java可能不是这项要求的最佳技术选择。但我相信还有其他的屏幕抓取API可用于外部自动化的Windows应用程序。我已经看到类似的软件测试套件。 – crowne

2

如果您想自动执行Windows任务,请使用专门编写的语言来执行此任务。想到的内容包括WinBatch,AutoIt和AutoHotkey。

7

我不确定这里的所有其他帖子,但Java有一个Robot类,它允许您(轻松地)将键盘和鼠标事件分派到底层操作系统(在这种情况下是Windows),这将允许您执行正是你在说什么。这是一个我使用过多次的“自动化”窗口任务的课程。

(我知道这是一个古老的线程,但万一别人出世界上有在其绊倒像我有,想你所列出的东西。)

相关问题