マウスをドラッグするだけでフォームの境界の外にカーソルの位置を取得するのは非常に簡単です。位置が変更されるたびに、次のコード行から多くの値がフォームに送信されます。
MessageBox.Show(Cursor.Position.ToString());
しかし、ユーザーがフォームの境界の外をクリックしたときにマウスの位置を取得する必要があります。マウスをホバリングするだけではありません。これを行うには、次のコード行を使用しました。
private void Form1_Deactivate(object sender, EventArgs e)
{
MessageBox.Show(Cursor.Position.ToString());
}
MessageBox.Show(Cursor.Position.ToString());を配置しました。フォームに Deactivate イベント。ユーザーがフォームの外側をクリックすると、このイベントが確実に発生します。ただし、ユーザーが外側をクリックせずにALT + TABキーの組み合わせを使用してプログラムを変更すると、間違った値も送信されます。
実際には、最初のクリックの位置から始まる領域のスクリーン ショットをキャプチャする必要があります。したがって、フォームの外でクリックしたときのカーソルの位置が必要です。お気に入り: