質問: 任意の座標の色の変化を判定して、任意の座標をクリックする、といったアプリを作りたいと思っています。 主な機能は次の3つです。 --- * 色の判断は複数の座標の色を取得 * forループで色を1ミリ秒以下で判定 * 判定後1ミリ秒以下で、赤ならaをクリック。黃ならbをクリック。青ならcをクリック。 --- はじめはVisualStudioでデスクトップアプリを作ろうと思っていたのですが UWSCで超簡単にできることがわかりました。 機能が同じであれば後は実行速度の問題なのですが C#で作るアプリとUWSCどちらが速いのでしょうか? UWSCについては下記サイトを見つけたのですが これは1ループあたり0.01ミリ秒ほどで判定できる、と考えていいのでしょうか? UWSCのループ速度と時間取得精度について > > 1msecの変化が拾える。100ループ前後で値が変わる。1万ループで103~105msec > > >
回答: 前回の質問の続きだと思いますので、それをふまえて まず、UWSCのサイトの内容ですが、「精度」の話です。 単純ループでどの処理も1msより短い間隔で時刻を取得出来ていますが 取得出来ている値が1msの変化を捉えられるか、捉えられないかの検証です。 ですので、今回考えておられる、1ms間隔で処理を行うという話とは別です。 そして、前回の質問であったコードで `g.CopyFromScreen(new Point(X, Y), new Point(0, 0), new Size(1, 1));` にてスクリーンのある座標の画像を取得している訳ですが このコードの実行に約30msかかりました。 (Core i7-2600,メモリ16G,1920x1080) ですので、ある座標の色を取得し、判断するには1msでは無理となります。 UWSCにて同様の処理の時間を測定していないので分かりませんが、処理時間は そこまで変わらないのではないかと思います。