2017年1月21日土曜日

SCuptureのWindows10対応についてGetWindowRect((IntPtr)hwnd, ref rect)に余白が出来る問題

Win+Cでアクティブウィンドウを画面キャプチャするする変な余白が入るようになりました。

事例:


どうも、GetForegroundWindow()で取得したウィンドウに対して

//Windows 7までのコード
RECT rect = new RECT();
int ret = User.GetWindowRect((IntPtr)hwnd, ref rect);

と位置とサイズの情報の取得が不適切のようです。



を参考にWindows 8/8.1/10で動作するように対応をかけました。

全体のソースは、