Как я могу сделать снимок экрана в приложении Windows?

Следующий шаг - внесение изменений. git add только что добавили их в постановку. Затем вам нужно зафиксировать их, в которых вы запустите git commit -m "Message when committing". Сообщение отобразится в вашем сообщении о коммите. Затем запустите git push, чтобы все ваши изменения были помещены в хранилище.

Пожалуйста, обратитесь к документации git для дальнейшего понимания.

Для добавления их в постановку. https://git-scm.com/docs/git-add

За их принятие https://git-scm.com/docs/git-commit [114 ]

При отправке в репо https://git-scm.com/docs/git-push

blockquote>

48
задан Rakete1111 17 September 2016 в 04:16
поделиться

3 ответа

// get the device context of the screen
HDC hScreenDC = CreateDC("DISPLAY", NULL, NULL, NULL);     
// and a device context to put it in
HDC hMemoryDC = CreateCompatibleDC(hScreenDC);

int width = GetDeviceCaps(hScreenDC, HORZRES);
int height = GetDeviceCaps(hScreenDC, VERTRES);

// maybe worth checking these are positive values
HBITMAP hBitmap = CreateCompatibleBitmap(hScreenDC, width, height);

// get a new bitmap
HBITMAP hOldBitmap = (HBITMAP) SelectObject(hMemoryDC, hBitmap);

BitBlt(hMemoryDC, 0, 0, width, height, hScreenDC, 0, 0, SRCCOPY);
hBitmap = (HBITMAP) SelectObject(hMemoryDC, hOldBitmap);

// clean up
DeleteDC(hMemoryDC);
DeleteDC(hScreenDC);

// now your image is held in hBitmap. You can save it or do whatever with it
61
ответ дан 7 November 2019 в 12:15
поделиться

Существует образец MSDN, Capturing Image , для захвата произвольного HWND на DC (вы можете попробовать передать на него выходные данные из GetDesktopWindow). Но насколько хорошо это будет работать под новым настольным композитором в Vista / Windows 7, я не знаю.

5
ответ дан Wolf 7 November 2019 в 12:15
поделиться
  1. Используйте GetDC(NULL); для получения DC для всего экрана.
  2. Используйте CreateCompatibleDC для создания DC, совместимого с экранным DC.
  3. Используйте CreateCompatibleBitmap, чтобы создать битмап, совместимый с DC экрана, для хранения результата.
  4. Используйте SelectObject, чтобы выбрать совместимый битмап в совместимый DC.
  5. Используйте BitBlt для копирования из экранного DC в совместимый DC.
  6. Используйте SelectObject для отмены выбора совместимого растрового изображения из совместимого DC.
  7. Используйте DeleteDC для удаления совместимого DC.

При создании совместимого растрового изображения необходимо, чтобы оно было совместимо с экранным DC, а не с совместимым DC.

Например:

HDC dcScreen = GetDC(0);
HDC dcTarget = CreateCompatibleDC(dcScreen);
HBITMAP bmpTarget = CreateCompatibleBitmap(dcScreen);
HGDIOBJ oldBmp = SelectObject(dcTarget, bmpTarget);
BitBlt(dcTarget, 0, 0, cx, cy, dcDesktop, x, y, SRCCOPY | CAPTUREBLT);
SelectObject(dcTarget, oldBmp);
DeleteDC(dcTarget);
ReleaseDC(dcScreen);

Другая важная часть - получить размер и расположение всего виртуального экрана:

int x  = GetSystemMetrics(SM_XVIRTUALSCREEN);  //left (e.g. -1024)
int y  = GetSystemMetrics(SM_YVIRTUALSCREEN);  //top (e.g. -34)
int cx = GetSystemMetrics(SM_CXVIRTUALSCREEN); //entire width (e.g. 2704)
int cy = GetSystemMetrics(SM_CYVIRTUALSCREEN); //entire height (e.g. 1050)
27
ответ дан 7 November 2019 в 12:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: