WM_PRINTを使用して、画面キャプチャを取得するプログラムを
作成しています。
画面がフォアグラウンドで表示される場合にはタイトルなどの
非クライアント領域を含めたキャプチャが取得できるのですが、
バックグラウンドで動作している場合には、クライアント領域
しか取得することが出来ません。うまく取得出来る方法はあり
ますでしょうか?
以下がソースとなります。

IntPtr pUnk = GetDC(hWnd);
Graphics memg = Graphics.FromImage(tmp);
IntPtr dc = memg.GetDC();
//IntPtr dc = memg.GetWindowDC(); //これでも取れない
SendMessage(hWnd, WM_PRINT, dc, (IntPtr)(0x02 | 0x04 | 0x08 | 0x10));