Win環境(WPF)でマウスの強制操作に関してハマった場合の対応方法。何故。
方法1
今まではここら辺を参考にしていた。
http://homepage2.nifty.com/nonnon/SoftSample/CS.NET/SampleSendInput.html
user32.dllからアンマネージdll関数のSendInput()でエミュレート操作データを作って送出。実行。
で、今回WPF環境で使おうとしたら動かなくて何故なのかー。
方法2
調べた結果、こっちの方法を参考にしたらいけた。ていうかまんま。
http://puarts.com/?pid=1144
WPF内のSetCursorPos()とアンマネージdll関数のmouse_event()でイベント発火させると良いらしい。
考察
原因は分からん。エラーも何も出ずに全力で無視されるんだけど、フレームワーク都合の何かっぽい。
WPFが低レイヤーのどこかでイベントを上書きしてるんだろうか。
方法1はWPF環境でなければ普通はいける。UnityのC#上からとかでも問題はない。