2011-10-30 11 views
4

ウィンドウ上でソリティアを再生できるプログラムを書いてみたい。ユーザーはプログラムを実行し、ソリティアを開いてカードが動くのを見ます。ソリティアをプレイするプログラムのためのAIを書くのは簡単です(私は明らかにWindowsのソリティア用のソースコードを持っていません)。私がこれを行うと考えることの1つの方法は、カードの現状を判断するためにソリティアのイメージを分析して分析した場合、カードの現在の状態を自分のプログラムに渡すことができます。しかし、私はクリックコマンドをどのように実行しますか?他のプログラムとやりとりするプログラムを書く方法

もっと一般的には、ユーザーのように別のプログラムとやり取りできるプログラムを作成したいと考えています。 私はC、C++、Java、Rubyの経験があります。しかし、私はこのことをどうやって始めるか、あるいはこれができるのかどうかわからないのですか?

+1

Javaの上でこれを行うと、退屈だろう。 * – Mob

+4

*「ソリティアをプレイするだろうプログラムのためのAIを書くのはその簡単には、」それですか?スニペットを私たちと共有してください。 *「私はこのコメントが含まれているには小さすぎる、本当に驚くべき証明を発見した。」*あなたが提供 –

答えて

1

Javaはこれを行うための言語ではありません。このような機能を容易にするためには、Windows API、特に入力をインジェクトでき​​るAPIに大きく依存する必要があります。出発点として、Windowsアプリケーションが実際に入力をどのように処理するかを知ることをお勧めします。 Thisはその件に関する良い記事です。

0

Windowsには、キーボードとキーボードをプログラム的に制御するための方法SendInputがあります。どのアプリケーションを制御したいのか分かっているなら、これで十分でしょう。しかし、おそらく画面上の内容を調べることも必要です。このためにはGetPixelが必要です。

0

個人的には、スクリーン・スクレーパー・テクノロジーは、基礎となるアプリケーションの変更や画面の解像度の変更によってしばしば影響を受けるため、あまり好きではありません。
しかし、これはあなたがここで採用できるアプローチのようです。
ここでは、Javaが最適な選択ではないことに同意します。
「スクリーンスクレーパーAPI」を検索してください。

更新:

有望と思われるカウンタは、直感的にJavaベースのしているようだhttp://community.screen-scraper.com/API
で最初のヒット。

+1

リンクはWB-サイトをスクレイピングのためである - FAQから**スクリーンスクレーパーのみWebサイトからデータをこすりするように設計されて**! – Yahia

+0

ああ、私はおそらくjavaの考えだけでなく、この要件のための技術の最良の選択ではありません。しかし、私はAPIの利用可能な外部のWindowsアプリケーションを自動化するためにこする他のスクリーンがあると確信しています。私はソフトウェアテストスイートに組み込まれたものを見たことがあります。 – crowne

2

Windowsタスクを自動化する場合は、これを実行するために特別に記述された言語を使用します。気になるものにはWinBatch、AutoIt、AutoHotkeyがあります。

7

私はここに他のすべての記事についてはわかりませんが、Javaにはキーボードやマウスイベントを基になるOS(ここではウィンドウ)に(簡単に)ディスパッチできるRobotクラスがありますまさにあなたが話していること。それは私がWindows上でタスクを「自動化」するために何度も使ってきた小さなクラスです。

(私はこれは古いスレッドですけど、私は持っていて、概説した内容やりたいような場合にはそこに世界の誰がそれにつまずく。)

関連する問題