1

これは、特定の言語の問題というよりも、概念/実装の質問です。

カーソル移動の記録について何か洞察を持っている人はいますか?
カーソルの現在位置を取得するのは非常に簡単ですが、カーソルがたどるパスをどのように記録しますか?
(たどった経路に関して曖昧さなしにグラフィカルにプロットできる詳細度まで)

カーソルの現在位置を短い時間の後に繰り返し記録し、すべてを記録して時系列にアクセスした座標のリストを作成できると思いますが、記録をどのくらいの頻度で(または実行可能に)行うべきかわかりません。10ミリ秒ごと?
こんなに短時間寝る方法も、必要な精度で出会ったことはありません!

また、CPU使用率が高いときのスリープと記録のパフォーマンスについても心配しています。ユーザーがマウスを使用して集中的なソフトウェアを操作しているとき。

カーソルが実際にどこに移動しているのか完全にはわかりません。画面上でカーソルをスイープしたり、コンピューター(内部のどこか)にこれらすべてのピクセルを横切ったことを認識させたり、マウスに「私はそこにいた、今ここにいる、今私はそこにいる」と実際に言った場合。

また、速い動きと遅い動きを区別する方法も模索していますが、今のところ、訪問した座標のグラフでプロットの間隔を観察することができます。

誰かがこれについて何か洞察を持っていますか?潜在的な落とし穴。私の懸念は正当ですか?私はこれについて間違った方向に進んでいますか?

(観察できるように、私はこの問題についていくつかのガイダンスが本当に必要です)

ありがとう!

4

1 に答える 1

1

同じアプリケーション内でマウスの動きをログに記録する方がはるかに簡単です。すべてのWM_MOUSEMOVEメッセージに何かを記録するだけです。マウス ポインタの位置を定期的に更新するメッセージが表示されます。マウスが交差するすべてのピクセルに対してメッセージが表示されるわけではありませんがWM_MOUSEMOVE、マウスの移動速度とシステムのビジー状態に応じてジャンプします。

他のアプリケーションでのマウスの動きの記録は、もう少し複雑になります。ロガーとログに記録されるアプリケーションの両方を作成した場合は、ログに記録されるWM_MOUSEMOVEアプリケーションで処理し、対応するメッセージをロガー アプリケーションに送信できます。選択した IPC; シンプルSendMessage()で十分かもしれません。

システム全体でマウスの動きを記録することは、まったく別の問題です。ドライバーレベルに近い場所に接続する必要がある場合があります。

私はちょうど別のアプローチを考えました - CBT (Computer-Based Training) フックは、アプリケーション全体でまさにこの種の情報を提供するように設計されています。私はこれらを使用したことがないので、さらに調査する必要があります。

于 2012-11-24T06:06:34.090 に答える