2011-10-27 3 views
1

私は、私がオンラインで走っているアプレットを持っていて、人々がJavaロボットクラスを使ってアプレットを操作できないようにしたい。 yahooはゲームプラットフォームのいくつかでこれをやっていることを知っています。ロボットマウスと人間のマウスクリックを区別する

+1

*「人々がJavaロボットクラスを使用できないようにしたい」*他の言語のAPIのクラスのようなロボットを使用しても問題ありません。 –

+0

好きではない場合は好きですが、JavaのRobotクラスの検出方法に問題を集中させたいので、そう言いました。 –

答えて

3

マウスの動きを見て、ある場所から別の場所に「ジャンプ」するのを見ないようにしてください。 http://download.oracle.com/javase/tutorial/uiswing/events/mousemotionlistener.html

これは、ロボットと人のタッチスクリーンやタブレット入力デバイスの違いを検出できない可能性があることに注意してください。Sun/OracleのJ2SEチュートリアルでは、マウスの動きイベントに従う方法を示しています。

もう1つ注目すべきことは、ユーザーが同じピクセルをクリックしているのか、まったく同じ付近にあるのかです。人間はかなり不正確ですが、ロボットは一般的にプログラムされていない限りそうではありません。

また、この情報をコンパイルしてユーザーの実際の動きを把握するためのジェスチャーロガーを用意しました。誰かが不正行為をしている疑いがある場合、実際のマウスの動きがどのように見えるかを見て、それを既知の人と比較することができます。そうすれば、私たちの頭の上から出てくるものよりも、あなたが探しているものの良いアイデアが得られます。

+1

+1データを照合し、それを使用してアルゴリズム/ヒューリスティックのセットを開発します。私は最近、このコンセプトを説明する[記事](http://worrydream.com/LadderOfAbstraction/)を読んでいます。 – Bringer128

+0

それは私がちょうど後で読むためにブックマークした素晴らしい記事です。簡単な例で非常に有益です。 – SplinterReality

1

は、時間の経過とともにマウスの位置の分布を記録します。人間は、クリックされるたびにどこに配置するかを正確に把握しているロボットとは異なる方法でマウスを動かします。もちろん、スマートなロボットがこの防衛に逆らうことができます。

関連する問題