Здравствуйте, Аноним, Вы писали:
А>Здрасти. Как вы думаете можно ли сделать snapshot для любого окна под WindowsXP? И если можно, то как?
Можно. Ctrl+PrntScr, потом вырезаете в редакторе свое окно. Если хочется сделать по привычному Alt+PrntScr, то откуда винда может знать что конкретно вы хотите...
Или я не понял вопрос?
ICQ 156156278
Re[2]: Снимок неактивного окна?
От:
Аноним
Дата:
24.10.04 18:00
Оценка:
Здравствуйте, BlackHeretic, Вы писали:
BH>Здравствуйте, Аноним, Вы писали:
А>>Здрасти. Как вы думаете можно ли сделать snapshot для любого окна под WindowsXP? И если можно, то как?
BH>Можно. Ctrl+PrntScr, потом вырезаете в редакторе свое окно. Если хочется сделать по привычному Alt+PrntScr, то откуда винда может знать что конкретно вы хотите... BH>Или я не понял вопрос?
Это че мне генерировать нажатие кнопок надо с помощью SendMessage? Ну это по моему перебор. Мне же программно надо это сделать.
Нашел функцию PrintWindow, но работает только на новых ОС. А может есть способ для всех ОС? Кто знает?
Здравствуйте, Аноним, Вы писали:
А>Здрасти. Как вы думаете можно ли сделать snapshot для любого окна под WindowsXP? И если можно, то как?
Попробуй послать ему WM_PRINT
Успехов
Re[2]: Снимок неактивного окна?
От:
Аноним
Дата:
24.10.04 19:22
Оценка:
Здравствуйте, c-smile, Вы писали:
CS>Здравствуйте, Аноним, Вы писали:
А>>Здрасти. Как вы думаете можно ли сделать snapshot для любого окна под WindowsXP? И если можно, то как?
CS>Попробуй послать ему WM_PRINT
CS>Успехов
Я всем подряд его шлю(WM_PRINT), но пока никто не откликунулся( Это нормально или я что-то не так делаю?
Здравствуйте, Аноним, Вы писали:
CS>>Успехов А>Я всем подряд его шлю(WM_PRINT), но пока никто не откликунулся( Это нормально или я что-то не так делаю?
CS>>>Успехов А>>Я всем подряд его шлю(WM_PRINT), но пока никто не откликунулся( Это нормально или я что-то не так делаю?
Т>Вообще-то WM-PRINT — это не панацея. Т>здесь
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Привет!
PD>Unknown wrote: >> Я всем подряд его шлю(WM_PRINT), но пока никто не откликунулся( Это нормально или я что-то не так делаю?
PD>А как ты хочешь, чтобы они откликнулись ? Ты должен hdc передать в этом PD>сообщении, в котором они себя и нарисуют. В hdc должна быть выбрана hBmp
PD>-- PD>With best regards, PD> Pavel Dvorkin
А ты что думаешь я его просто так шлю, без Hdc? Это не мой способ работы — рассылать всем окнам сообщения с NULL параметрами! Все окна, кроме моего собственного возвращают черный экран, мое собственное окно возвращает все нормально.
Мда и про Вень Хуаня хочу сказать. Видел я его пример реализации и даже запускал пару раз. Но сразу настораживает, что не работает под 9х. И что после такого скриншота окну больше не жить. Смертельные скриншоты — это конечно прикольно, как предсмертное фото, но хотелось бы узнать можно ли сделать так, чтоб окно жило обычной жизнью после снимка?
Re: Снимок неактивного окна?
От:
Аноним
Дата:
25.10.04 10:10
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Здрасти. Как вы думаете можно ли сделать snapshot для любого окна под WindowsXP? И если можно, то как?
И еще вопросец для знатоков. В Windows XP есть функция PrintWindow. Кто-нить имеет у себя dll с реализацией этой функцией для других ОС. Для не знающих(особо умных): если такая библиотека есть, то она реализована не m$. И делалась она путем дизассемблирования библиотек виндоус. Как это сделано для функции OpenThread для Windows 95. Которой в стандартном API не существует.
Unknown wrote: > А ты что думаешь я его просто так шлю, без Hdc? Это не мой способ работы — рассылать всем окнам сообщения с NULL параметрами! Все окна, кроме моего собственного возвращают черный экран, мое собственное окно возвращает все нормально.
Ну не знаю. Если у окна есть в настоящее время содержимое (т.е. оно
полностью не перекрыто) — у меня возвращало нормальную картинку. Если
полностью перекрыто, конечно, нет.
Давай код, посмотрю.
--
With best regards,
Pavel Dvorkin
Posted via RSDN NNTP Server 1.9 gamma
With best regards
Pavel Dvorkin
Re[6]: Снимок неактивного окна?
От:
Аноним
Дата:
25.10.04 15:42
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Привет!
PD>Unknown wrote: >> А ты что думаешь я его просто так шлю, без Hdc? Это не мой способ работы — рассылать всем окнам сообщения с NULL параметрами! Все окна, кроме моего собственного возвращают черный экран, мое собственное окно возвращает все нормально.
PD>Ну не знаю. Если у окна есть в настоящее время содержимое (т.е. оно PD>полностью не перекрыто) — у меня возвращало нормальную картинку. Если PD>полностью перекрыто, конечно, нет.
PD>Давай код, посмотрю.
PD>-- PD>With best regards, PD> Pavel Dvorkin
Ну собственно код я взял из примера Фунь Хуаня(кажется так):
HDC hDCMem = CreateCompatibleDC(NULL);
RECT rect;
GetWindowRect(hWnd, & rect);
HBITMAP hBmp = NULL;
{
HDC hDC = GetDC(hWnd);
hBmp = CreateCompatibleBitmap(hDC, rect.right — rect.left, rect.bottom — rect.top);
ReleaseDC(hWnd, hDC);
}
HGDIOBJ hOld = SelectObject(hDCMem, hBmp);
SendMessage(hWnd, WM_PRINT, (WPARAM) hDCMem, PRF_CHILDREN | PRF_CLIENT | PRF_ERASEBKGND | PRF_NONCLIENT | PRF_OWNED);
SelectObject(hDCMem, hOld);
DeleteObject(hDCMem);
OpenClipboard(hWnd);
EmptyClipboard();
SetClipboardData(CF_BITMAP, hBmp);
CloseClipboard();
А hWnd собственно = GetForegroundWindow(). Надо потом окно нужное сделать активным и по таймеру мое приложение его в буфер и положит. Но кладет черный экран, если это не оно само.
Re[2]: Снимок неактивного окна?
От:
Аноним
Дата:
25.10.04 15:44
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним, Вы писали:
А>>Здрасти. Как вы думаете можно ли сделать snapshot для любого окна под WindowsXP? И если можно, то как?
А>И еще вопросец для знатоков. В Windows XP есть функция PrintWindow. Кто-нить имеет у себя dll с реализацией этой функцией для других ОС. Для не знающих(особо умных): если такая библиотека есть, то она реализована не m$. И делалась она путем дизассемблирования библиотек виндоус. Как это сделано для функции OpenThread для Windows 95. Которой в стандартном API не существует.
Ага я так понимаю нет не у кого. Хорошо тогда может кто ссылочки кинет на подобные сайты.
Re[5]: Снимок неактивного окна?
От:
Аноним
Дата:
25.10.04 15:47
Оценка:
Здравствуйте, Andrew S, Вы писали:
CS>>>>Успехов А>>>Я всем подряд его шлю(WM_PRINT), но пока никто не откликунулся( Это нормально или я что-то не так делаю?
Т>>Вообще-то WM-PRINT — это не панацея. Т>>здесь
AS>Вообще то — панацея. Идея и *относительно* кривая реализация — у Фень Юаня, остальное — дело времени и терпения.
Уважаемый, так может подумаем над *относительно* НЕ кривой реализацией. Или может есть места где уже подумали над этим вопросом. В противном случае этот вопрос так и будет всплывать на форуме.
CS>>>>>Успехов А>>>>Я всем подряд его шлю(WM_PRINT), но пока никто не откликунулся( Это нормально или я что-то не так делаю?
Т>>>Вообще-то WM-PRINT — это не панацея. Т>>>здесь
AS>>Вообще то — панацея. Идея и *относительно* кривая реализация — у Фень Юаня, остальное — дело времени и терпения.
А>Уважаемый, так может подумаем над *относительно* НЕ кривой реализацией. Или может есть места где уже подумали над этим вопросом. В противном случае этот вопрос так и будет всплывать на форуме.
Пример Фень Юаня у меня вполне работает. Есть какие-то вопросы по конкретным местам кода — спрашивайте.
Здравствуйте, Andrew S, Вы писали:
CS>>>>>>Успехов А>>>>>Я всем подряд его шлю(WM_PRINT), но пока никто не откликунулся( Это нормально или я что-то не так делаю?
Т>>>>Вообще-то WM-PRINT — это не панацея. Т>>>>здесь
AS>>>Вообще то — панацея. Идея и *относительно* кривая реализация — у Фень Юаня, остальное — дело времени и терпения.
А>>Уважаемый, так может подумаем над *относительно* НЕ кривой реализацией. Или может есть места где уже подумали над этим вопросом. В противном случае этот вопрос так и будет всплывать на форуме.
AS>Пример Фень Юаня у меня вполне работает. Есть какие-то вопросы по конкретным местам кода — спрашивайте.
На счет точности до байта я с этого примера его и скопировал Ибо свой,блин,удалил. Вопросы конечно есть. Например почему окно надо закрывать после снимка. Можно ли сделать так, чтобы оно дальше жило?. Мда, и как насчет 9х будет ли там работатью, он ведь вроде обещает, что нет. Еще вопрос функция PrintWindow в Windows XP как грабит сообщения посылает или из памяти берет. Может посмотреть ее исходники(дизасемблер) и сделать так же?
Re[8]: Снимок неактивного окна?
От:
Аноним
Дата:
25.10.04 16:42
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Andrew S, Вы писали:
CS>>>>>>>Успехов А>>>>>>Я всем подряд его шлю(WM_PRINT), но пока никто не откликунулся( Это нормально или я что-то не так делаю?
Т>>>>>Вообще-то WM-PRINT — это не панацея. Т>>>>>здесь
AS>>>>Вообще то — панацея. Идея и *относительно* кривая реализация — у Фень Юаня, остальное — дело времени и терпения.
А>>>Уважаемый, так может подумаем над *относительно* НЕ кривой реализацией. Или может есть места где уже подумали над этим вопросом. В противном случае этот вопрос так и будет всплывать на форуме.
AS>>Пример Фень Юаня у меня вполне работает. Есть какие-то вопросы по конкретным местам кода — спрашивайте.
На счет точности до байта я с этого примера его и скопировал Ибо свой,блин,удалил. Вопросы конечно есть. Например почему окно надо закрывать после снимка. Можно ли сделать так, чтобы оно дальше жило?. Мда, и как насчет 9х будет ли там работатью, он ведь вроде обещает, что нет. Еще вопрос функция PrintWindow в Windows XP как грабит сообщения посылает или из памяти берет. Может посмотреть ее исходники(дизасемблер) и сделать так же?
Самое важное забыл. Получается, что есть 2 варианта работы Windows:
1. Если окно перекрыто другими окнами, то оно впринципе не прорисовано. И его сграбить вообще не возможно. Можно только как Фень Хуань попросить его: "Не могли бы вы нарисоваться в этот контекст устройства таким каким бы вы были, если вдруг стали активным." Т.е. послать ему сообщение.
2. Окно всетаки прорисовано. (Вероятно в 9х, если мы сворачиваем окно , то оно просто напросто перемещается на координаты х=3000, у=3000). Тогда можно сграбить его, вопрос в том как.
Какой из этих вариантов — реальный не знаю. А кто знает?
А>На счет точности до байта я с этого примера его и скопировал Ибо свой,блин,удалил. Вопросы конечно есть. Например почему окно надо закрывать после снимка. Можно ли сделать так, чтобы оно дальше жило?. Мда, и как насчет 9х будет ли там работатью, он ведь вроде обещает, что нет.
Если бы вы внимательно прочитали предложенную ссылку, то эти вопросы у вас бы не возникли. Прочитайте.
Здравствуйте, Andrew S, Вы писали:
А>>На счет точности до байта я с этого примера его и скопировал Ибо свой,блин,удалил. Вопросы конечно есть. Например почему окно надо закрывать после снимка. Можно ли сделать так, чтобы оно дальше жило?. Мда, и как насчет 9х будет ли там работатью, он ведь вроде обещает, что нет.
AS>Если бы вы внимательно прочитали предложенную ссылку, то эти вопросы у вас бы не возникли. Прочитайте.
Я это читал много раз и даже жо того как задал вопрос. И все же как работает PrintWindow, как Юань прописал?