Помогите разобраться. почему не работает?
От: Lazyman Россия  
Дата: 14.09.07 23:11
Оценка:
Нужно сделать снимок невидимой формы.
делаю вот так:


   Bitmap ret = null;
   Bitmap bitmap = new Bitmap(1152, 864);
   Graphics graphics = Graphics.FromImage(bitmap);
   IntPtr memdc = graphics.GetHdc();
   IntPtr hbitmap = bitmap.GetHbitmap();
   Win32API.SelectObject(memdc, hbitmap);
   PRF flag = PRF.CLIENT| PRF.NONCLIENT;
   SendMessage((IntPtr)(0x00041540), (uint)0x0317, (uint)memdc, (uint)flag);
   ret = Bitmap.FromHbitmap(hbitmap);
   ret.Save("test.bmp");
   clsRet = System.Drawing.Image.FromHbitmap(hbitmap);
   Win32API.DeleteObject(hbitmap);
   graphics.ReleaseHdc(memdc);
   graphics.Dispose();
   bitmap.Dispose();


Импорт ДЛЛ из User32 и gdi32 — я тут не пишу..
В итоге — получается синий экран... (не синий экран смерти, а БМП-шка которая покрашена в синий цвет. при созднии — она белая)

0x0317 — это WM_PRINT
0x00041540 — это Window Handle который я получил с окна нужного Spy.(для простоты прям в исходник решил забить, что бы мнеьше кода было.)
1152, 864 — размер окна, с которого надо сделать снимок.

Пожалуйста, подскажите, что не так?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.