Форум работает в тестовом режиме. Все данные были перенесены со старого сайта 2018 года. Некоторая информация может быть недоступна, например вложения или хайды. Просьба сообщать о данных случаях через функционал "Жалоба", прямо под постом, где отсуствуют данные из хайда или проблемы с вложением.
Могут быть проблемы в "выкидыванием" с форума (слетевшей авторизацией). Нужно собрать статистику таких случаев.
Есть Тема, куда можете сообщить о проблемах с сайтом либо просто передать привет.

Скриншот неактивного окна л2 на делфи HELP

Рег
13 Авг 2015
Сообщения
29
Реакции
0
Помогите, нужен срочно кусок кода на Delphi, который делает снимок неактивного окна, в интернете они есть, но скрин получается черный, для L2, для, например калькулятора, либо другой системной программы он нормальный.


Буду очень благодарен.
В замен выложу какой-то скрипт для адреналин, например квест на нублес
 
http://forummaxi.ru/topic/69787-скриншот-неактивного-окна/ ок..
Л2 должна быть в окне, иначе в некоторых случаях придется прикручивать DirextX библиотеку, чтобы получить картинку.. Я на шарпе как-то получал апишными функциями.
upd: вот что использовал на своем кликере-боте для чтения с неактивного окна:
65a35991.jpg

http://www.realcoding.net/articles/funktsiya-getwindowdc.html
 
Апишными функциями я получаю черный экран, другие приложения, например калькулятор скринит нормально, ищу способы работы с DirectX
 
@nokia812010, не верю что нельзя апишными получить, только если это не руоф. У меня на шарпе получилось же.
Захват через DirectX все-таки геморный.

Попробуй сначала еще пару раз через апи.
Через Апи: http://delphidabbler.com/tips/186
Через Апи (2): http://stackoverflow.com/questions/27024554/capture-screenshot-from-selected-minimized-window
Вот еще интересная темка: https://villavu.com/forum/showthread.php?t=108664

Быстрым гуглом не нашел библиотеки для делфи, разве что официальный DirectX SDK. Но я с директом не дружу :peppa:
 
SARCAZM написал(а):
@nokia812010, не верю что нельзя апишными получить, только если это не руоф. У меня на шарпе получилось же.
Захват через DirectX все-таки геморный.

Попробуй сначала еще пару раз через апи.
Через Апи: http://delphidabbler.com/tips/186
Через Апи (2): http://stackoverflow.com/questions/27024554/capture-screenshot-from-selected-minimized-window
Вот еще интересная темка: https://villavu.com/forum/showthread.php?t=108664

Быстрым гуглом не нашел библиотеки для делфи, разве что официальный DirectX SDK. Но я с директом не дружу :peppa:
Первые 2 уже тестил, 3 - реализованный класс для XE3 и выше, у меня D7, с моей скоростью интернета быстро скачать не выйдет
 
а если по теме, то скажу проще.
тебе нужно, что бы окно л2 при свертывании в трей\просто сворачивании оставалось активным (видел такой софт, да и если в настройках порыться, то можно такое найти.)
для этого подойдет любой софт, тогда и сможешь сделать скрин (т.е окно л2 будет работать в граф. смысле, но и жрать будет, как активное, не думаю, что несколько таких живых окон будет тянуть топовое железо)
 
Автор темы скорее всего уже умер не нуждается в данном коде, но возможно кому-нибудь понадобится.
Делается скриншот неактивного окна, под неактивным я понимаю перекрытое окно, а не свернутое. В свернутых окнах, насколько я знаю, графика не отрисовывается.
void Window::Taking_screenshot(){
int error;
Image BASE_OBJ;
HDC hdc = GetDC(hwnd_window);
HDC hdcCompatible = CreateCompatibleDC(hdc);
RECT cr;
GetClientRect(hwnd_window, &cr);
HBITMAP hBmp = CreateCompatibleBitmap(hdc, cr.right - cr.left, cr.bottom - cr.top);
HWND hSrcWnd;
HDC hSrcDC;
HBITMAP old_bitmap = (HBITMAP)SelectObject(hdcCompatible, hBmp);
BitBlt(hdcCompatible, 0, 0, cr.right - cr.left, cr.bottom - cr.top, hdc, 0, 0, SRCCOPY);
ReleaseDC(hwnd_window, hdc);
SelectObject(hdcCompatible, old_bitmap);
DeleteDC(hdcCompatible);
DeleteObject(old_bitmap);
IplImage* screen = hbitmap_convert(hBmp);
DeleteObject(hBmp);
}
 
Назад
Сверху