Windows APIのメモ。
WindowFromPoint。
WindowFromPoint APIはマウスカーソル下のウィンドウを取得するのに手軽なので良く使うAPIなのですが、無効なウィンドウ(EnabledがFalseのウィンドウ)は対象外になります。
また拡張ウィンドウスタイルに WS_EX_LAYERED と WS_EX_TRANSPARENT の両方を指定してマウスで触れなくしたウィンドウも対象外となります。
ということで無効であっも見えているウィンドウも取得したいという場合はこのAPIだけではだめでChildWindowFromPointEx
APIと組み合わせて使うか、あるいはEnumWindows APIとEnumChildWindows APIを駆使するかしないとなりません。
いずれにせよマウスカーソル下の見えている一番手間のウィンドウハンドルを取得するのは思ったよりもずっと手間がかかります。