Текущий архив: 2002.10.14;
Скачать: CL | DM;
Вниз
Мне нужно, чтобы, сервер делал снимок экрана(как клавишей Print Найти похожие ветки
← →
Delpher-Hacker (2002-08-11 05:57) [0]Я пишу программу, которая следит за удалённым компьютером.
Есто клиет и сервер. Мне нужно, чтобы, сервер делал снимок экрана(как клавишей Print Screen)
и сразуже отправлял мне,клиенту, чтобы я мог его посмотреть.
Снимок не должен превышать размер в 200Кб.
Как это сделать, приведите пожалуйста пример кода?
Заранее спасибо!!!
← →
Vogul (2002-08-12 16:35) [1]Для затравки.
void CShowDesktopDlg::CopyDesktop(LPBYTE buffer)
{
CDC dcScreenMem, dcScaled, dcStatic;
CDC dcScreen, *dcOut;
CBitmap Bitmap, BitmapScaled;
CBitmap BitmapFinally;
CRect rect;
DWORD size;
dcScreen.CreateDC("DISPLAY", NULL, NULL, NULL);
dcScreenMem.CreateCompatibleDC(&dcScreen);
dcScaled.CreateCompatibleDC(&dcScreen);
Bitmap.CreateCompatibleBitmap(&dcScreen, 1152, 864);
BitmapScaled.CreateCompatibleBitmap(&dcScreen, 1152, 864);
BitmapFinally.CreateCompatibleBitmap(&dcScreen, 1152, 864);
CBitmap *pOldBitmap = dcScreenMem.SelectObject(&Bitmap);
dcScaled.SelectObject(&BitmapScaled);
CWnd * Display = (CWnd *) GetDlgItem(IDC_DISPLAY);
dcOut = Display->GetDC();
dcStatic.CreateCompatibleDC(dcOut);
BitmapFinally.CreateCompatibleBitmap(dcOut, 290, 200);
Display->GetWindowRect(&rect);
dcScreenMem.BitBlt(0,0,1152,864,&dcScreen,0,0,SRCCOPY);
dcScaled.StretchBlt(0,0,290,200,&dcScreenMem,0,0,1152,864,SRCCOPY);
size = BitmapScaled.GetBitmapBits(1, buffer);
buffer = (LPBYTE) LocalAlloc(LPTR, size*sizeof(BYTE));
BitmapScaled.GetBitmapBits(size, buffer);
BitmapScaled.DeleteObject();
BitmapFinally.SetBitmapBits(size,buffer);
dcOut->BitBlt(0,0,290,200,&dcStatic,0,0,SRCCOPY);
}
Потом жми в jpeg например и отправляй.
← →
Ghost. (2002-08-12 17:26) [2]На лист ру можно найти исходник такой проги
Страницы: 1 вся ветка
Текущий архив: 2002.10.14;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.007 c