Я и не знаю, как это делается-то)
Не томи, кинь ссылкой с вильнюсовским бейсиком)
Вид для печати
2:Patron >, очень прошу помочь консультацией по вопросу текстово-графической копии экрана эмулятора в буфер обмена для EmuStudio !
Кидаю Бейсиком, лови )))
http://archive.pdp-11.org.ru/ukdwk_a...bas_and_games/
http://hobot.pdp-11.ru/ukdwk_archive...bas_and_games/
Дискета загрузочная, бейсик прописан в стартовый файл.
Покинуть бейсик и выйти в RT-11 команда "SYS" + "enter".
:redface:
Заменил чуть выше версию 0.09a на 0.09b, т.к. при ресете не переинициализировалось MMU (менеджер памяти ПП), из-за чего могли проявиться глюки при сбросе во время программ, использующих этот менеджер, как то драйвер виртуальной памяти Альфапрога.
Текстовая копия вряд ли нужна, а графическая копия окна hWnd делается так:
Код:if( OpenClipboard( hWnd ) ) //открываем буфер обмена
{
EmptyClipboard();
RECT rc;
GetClientRect( hWnd, &rc );
HDC hDCsrc = GetDC( hWnd );
HDC hDCdst = CreateCompatibleDC( hDCsrc );
HBITMAP hBitmap = CreateCompatibleBitmap( hDCsrc, rc.right, rc.bottom );
SelectObject ( hDCdst, hBitmap );
BitBlt( hDCdst, 0,0, rc.right, rc.bottom, hDCsrc, 0,0, SRCCOPY );
SetClipboardData( CF_BITMAP, hBitmap );
ReleaseDC( hWnd, hDCsrc );
DeleteDC( hDCdst );
DeleteObject( hBitmap );
CloseClipboard(); //закрываем буфер обмена
}
hobot, а представь - нажимаешь одну кнопку, и у тебя сразу скрин в папочке лежит... сразу его на сайт без обработки закидываешь, и хоть сотнями их делай и закидывай :) Ну разве не удобно? :)
Я думаю так же ) Но вот в случае UKNCBTL - получилась очередная недоработка,
по мне если EmuStudio будет делать скрины в буфер по примеру эмулятора ДВК
Patrona - это будет уже очень хорошо!
---------- Post added at 04:49 ---------- Previous post was at 03:12 ----------
Внутренее содержимое окна не перерисовывается (
Печалько ( Два контрола не помогают. В общем что то не так. Пока откатываюсь
на какой-нибудь более ранний вариант.
http://images.netbynet.ru/direct/90f...3427b8eb02.png
---------- Post added at 04:53 ---------- Previous post was at 04:49 ----------
Ага! поймал как заставить эмулятор так заглючить, нажми ctrl+alt+del и потом отену.
---------- Post added at 04:54 ---------- Previous post was at 04:53 ----------
И тормоза на запуске, раньше открывался мгновенно практически (
http://code.google.com/p/ukncbtl/sou...UKNCBTL%2Futil -- см. BitmapFile.h/cpp -- сохранение в .BMP и в .PNG
Это у меня вообще оказывается http://www.codeproject.com/Articles/1300/CxImage
а че это? Я в этом не разбираюсь) Я не системщик)
---------- Post added at 16:23 ---------- Previous post was at 15:20 ----------
Слишком расточительно запихивать в эмуль кодировщик .PNG, если это может сделать GDI+. Только еще не разобрался пока как)
интересный скриншот у hobot ; )
Где можно взять бету 0. 09b?
На страничке для внимательных
---------- Post added at 19:18 ---------- Previous post was at 18:51 ----------
Посмотрел, что есть в GDI+ класс Bitmap, который можно записывать над диск в формате .png.
Однако, чтобы создать этот обьект Bitmap, нужно знать BITMAPINFO и указатель на данные.
А как это получить с окна, я чета не пойму)Цитата:
Bitmap( const BITMAPINFO *gdiBitmapInfo,
VOID *gdiBitmapData
);
Как HBITMAP получить, я знаю, а как из нее BITMAPINFO и т.д. - не знаю) Очень в винде все наворочено и запутано)
Я использовал другой конструктор:
Код:Bitmap::Bitmap(
IN INT width,
IN INT height,
IN INT stride,
IN PixelFormat format,
IN BYTE *scan0
)
Да я же не спорю.
Титус - всё перепроверил уже и настаиваю: на моём железе (ноут), с бортовым видео от интел, при вызове системного окна виндоус CTRL+ALT+DEL и последующим его закрытием (кнопка "отмена") окно эмулятора ни в какую своё содержимое не перерисовывает. Насчёт более медленного запуска - появился лаг - в сравнении с лёгкой версией 7С например, как у тебя организована onPaint или что то там в программе - почему он не обновляется после вызова окна Windows Security ??? Причём если просто свернуть или убрать фокус он перерисует, а вот
после ctrl-alt-del ни в какую (
Я вижу грядут скрины !!! В текущую папку разумеется ))) Сохраняй в BMP !!! )))
Не даже лучше в RAW !!! )))
---------- Post added at 21:36 ---------- Previous post was at 21:18 ----------
Если такой глюк с окном только у меня значит дело в драйверах бортового видео на буке - что вполне возможно, отпишите кто нибудь про этот баг ???
Окно можно скопировать в битмап (который можно записать в .bmp, т.е. заполнить заголовки, получить биты и записать в файл один за другим), а у битмапа можно получить данные API-функцией GetObject. Для битмапа она вернёт структуру BITMAP, там почти все данные есть. Только если bmBitsPixel==16 надо как-то решить, какой точно формат пикселя: 555 или 565. Я ставил зелёную точку апишными функциями и сравнивал биты точки с константой 0x3e0.
Скажи точно, с какой версии появляются у тебя такие глюки, как неперерисовка и тормоза при запуске.
---------- Post added at 23:26 ---------- Previous post was at 23:23 ----------
HBITMAP я и так могу получить. А вот как из нее - не знаю.
Впрочем, нашел вроде другой подход - ведь у меня сперва все рисуется на поверхности DirectDraw, так что я с нее и буду записывать.
Сейчас запустил самую раннюю из тех что сохранились - это 6b - там всё то же с окном, если после восстановления фокуса или свёртывания всё норм, то после (как я
и писал) ctrl-alt-del ни в какую ( - значит так всегда и было просто я заметил только что. Тормоза - сейчас по кликал вроде и нет (при всех тех же параметрах и монтированных дисках) - возможно у меня иногда что-то усердно читается хардом,
или обновление в фоне - могло совпасть - сейчас тормозов нет - стартует нормально. С нетерпением жду версию со скринами! Что бы потом на всех компах
уже обновить один раз и друзьям-соседям тож, после тщательного тестирования
конечно )
---------- Post added at 00:24 ---------- Previous post was at 00:13 ----------
Titus - сразу ещё запрос\пожелание
сложно ли сделать паузу\останов эмулятора? По принципу как кнопка run в UKNCBTL
- очень годится отлавливать переходные моменты и удачные(нужные) кадры, к примеру. Так же с появлением возможности "reset" - и даже уже поправленного "сброса" !) - удобней было бы не закрывать окно эмулятора, а просто останавливать его работу на необходимое время. Как-то так. Если ты уж копаешься там.
Идеально было-бы родной экран режимом по умолчанию сделать - ты сам ратовал за
честную СИНЕ-БЕЛУЮ УК-НЦшку, так давай и честный экран ей вернём (пускай с него эмулятор стартует!)
---------- Post added at 00:31 ---------- Previous post was at 00:30 ----------
типа прорисовку проверить? попробую - отпишусь !
---------- Post added at 00:32 ---------- Previous post was at 00:31 ----------
слушай а самой первой 1А у тебя не сохранилось? Может куда нибудь зальёшь, тогда сразу можно будет проверить самый первый вариант и всё - если не перерисует окно,
другие щупать смысла нет.
Что значит честный экран? Он сейчас что ни на есть честный по соотношению сторон.
Еще проверь такие пункты:
1) начинает ли тормозить компьютер после того, как перестает рисовать в окне
2) продолжает ли работать эмулятор? Скажем, нажимается ли Delete, с переключенирм размера окна и информацией в консоли?
Кстати, у меня не делается проверка, отобрала ли у меня система рисовательную поверхность или нет. А это вполне может произойти, если во время работы СМЕНИТЬ разрешение экрана, например. Может у тебя какая-то седьмая винда, которая при входе в Alt Ctrl Del отбирает поверхность.
---------- Post added at 00:36 ---------- Previous post was at 00:35 ----------
Окно по умолчанию - это окно, а не фулскрин.
Ни за что) Это моветон)
Самая ранняя версия, что на форуме - это 0.04b,
но, рефреш экрана я с 0.01 вообще не менял.
Экран оборудования которое ты эмулируешь в родном виде - что тут дурного?
За что ты так ненавидишь УК-НЦ ? )
История холодной войны )))
Скрытый текст
Но это уже история - никуда не денешься !
http://zx.pk.ru/showpost.php?p=462280&postcount=28 - первый скрин от Хобота
http://zx.pk.ru/showpost.php?p=462292&postcount=29 - первая реакция Titusa
на историческую-же тему )))
http://zx.pk.ru/showpost.php?p=462506&postcount=33
http://zx.pk.ru/showpost.php?p=462529&postcount=34
http://zx.pk.ru/showpost.php?p=462568&postcount=55
К слову про Virtual Memory Driver by Alpharog
[свернуть]
Какой медленный в 4-й версии дисковод - я и забыл уже )
>Может у тебя какая-то седьмая винда, которая при входе в Alt Ctrl Del отбирает поверхность.
Нет ХР с третьим паком - аглицкая.родн. что она там отбирает и у кого
я конечно не очень знаю, но вижу что с отрисовкой окна беда таже.
Ха 4-я версия повеселила )
---------- Post added at 01:10 ---------- Previous post was at 01:09 ----------
Да про пунктики : работает масштабирование без отрисовки в окне,
запуск приложений трудно сказать
Домучил наконец эту выгрузку скриншотов) Что для меня не просто, т.к. приходится вникать во все эти системные тонкости, а я в них не специалист. Зато компактно и универсально системными средствами GDI+. Записывает в формате .PNG без потери качества. Но так же может записывать и в .bmp, .gif и т.д. Только это не надо пока что.
Итак, комбинация клавиш для записи скриншота на диск - 'LShift + PrintScreen'. По-началу хотел сделать 'LCtrl+PrintScreen', но оказалось, что у УКНЦ на УПР+ПОМ, куда проэцируются эти клавиши, находится какая-то неизвестная мне команда, включающая надпись ИСУ в верхней служебной строке. 'LAlt+PrintScreen' тоже не подошло, потому что Alt с PrintScreen одновременно НЕ НАЖИМАЮТСЯ. Не знаю, с чем это связано.
Скриншоты имеют размер в пикселях равный активному размеру окна эмулятора. Если же вы пользуетесь эмулятором в полноэкранном режиме (когда окно максимизировано), или когда вы вручную изменики размеры окна, то скриншот будет все равно записан правильного размера. Это все потому, что он пишется не с окна, а с DirectDraw поверхности, на которой и рисуется перед отправкой в окно.
Нумерация скриншотов автоматическая от 000 до 999. Номеру скриншота будет присвоен первый из доступных номеров в этом диапазоне. Если у вас уже есть на диске скриншоты с номерами 000, 001, 005. То следующая запись создаст скриншот 002, 003, 004, 006 и т.д. Скриншот записывается в папку с эмулятором.
И, наконец, дополнительная индикация в консоли потери DirectDraw поверхности сделанная специально для Хобота.
Хотя по-хорошему, для скриншота следовало бы использовать клавишу, которая нигде не используется, но таких что-то не осталось.
Например, такие замечательные клавиши, как 'Windows', но как отключить с них системные функции, я пока не знаю.
Оказалось, что отключать реакцию Windows на нажатие любых системных клавиш ( NumLock, ScrollLock, CapsLock, Win, Apps ) гораздо проще, чем представлялось ещё недавно.
Подробно технология описана ЗДЕСЬ.
Скрины ! Шикарно - проверил.
http://images.netbynet.ru/direct/aee...706d09dcea.png
Но только почему специально? И при чём тут Хобот? Хобот не виндос, не эмулятор
не писал, попробуй на своём компе - тут важнее понять это только с бортовым
видео(драйверами от интел) или просто так устроено в виндоус и у всех вообще всегда так будет? Неужели трудно ctrl-alt-del нажать? Вопрос к скачавшим эмулятор! После такого глюка, кстати говоря - скрины уже не пишутся )
Что бы глюк воспроизвести нужно либо вызвать системное окно по ctrl-alt-del
Либо запереть компьютер по <флажок>+L(ock).
Спасибо за новую версию со скриншотами и прочими наворотами )
---------- Post added at 22:12 ---------- Previous post was at 21:44 ----------
Первые скрины средствами EmuStudio )
Скрытый текст
Циклопа удалось миновать и еле хватило воды, но смелые и отважные мы - добрались до далёкого города
http://images.netbynet.ru/direct/2e0...13eb0ca30c.png
Продолжаем плавание
http://images.netbynet.ru/direct/27d...969ec09ea4.png
[свернуть]
---------- Post added at 22:26 ---------- Previous post was at 22:12 ----------
Продолжение путешествия и не счастливый конец (
Скрытый текст
Многие моря и городя мы посетили.
http://images.netbynet.ru/direct/d43...2e3c9a514a.png
http://images.netbynet.ru/direct/216...b119d313a3.png
http://images.netbynet.ru/direct/57f...de8a8f3b2e.png
http://images.netbynet.ru/direct/f20...5f4c035a21.png
http://images.netbynet.ru/direct/a98...ec9fd31ad8.png
В италии повезло с погодой ) Но не повезло с МОНСТРАМИ )
http://images.netbynet.ru/direct/0d4...58feec1460.png
При прохождении пролива нас атаковали и пожрали мифические чудовища !!! Увы (
http://images.netbynet.ru/direct/c61...26ec85b47b.png
[свернуть]
лучше бы отписал про глюк с потерей рисовательной поверхности, у тебя на компе воспроизводится или нет?
Что для одного уродство - для другого КРАСОТА! )
А диагонали будут только расти - запрещай что хочешь, но представь огромный современный маниторище и без указанного режима что мы получим? Крохотное окно
с крошечным синем фоном и крошечными белыми букавками.
Не знаю почему это замечание поддержал BYTEMAN ? Неплохо бы обосновать
критику - что значит "уродовал" - я вас как художник художника спрашиваю? )
у меня бук с матрицей заточенной под HD и соотношение сторон оответствующее,
вот отпиши пож. Titus каким разрешением винды ты пользуешся в данный момент?
Почему я должен глазки то ломать и рассматривать крошечные буковки ??? И это ноут, а вот реально у приятеля - который с нетерпением ждёт свежий EmuStudio УК-НЦ, у него вообще диагональ нереально огроменная и моник опятьтаки 16:9 знаешь как там ох..... красиво! в таком разрешении и главное всё видно чётко - какие впечатления можно испортить? Главное глаза не портить ИМХО )
---------- Post added at 01:13 ---------- Previous post was at 01:10 ----------
получается, что это не баг, но если это можно поправить.
А про паузу, что скажешь. Просто перед Win+L неплохо было бы на паузу и эмуль
иметь возможность поставить?
Не ощутил вашей поддержки и понимания в этой теме к сожалению.
http://zx.pk.ru/showpost.php?p=553133&postcount=41
На моих скриншотах - скриншоты из эмулятора с определёнными (очень понятными) настройками )
У всех этих ноутбуков, даже с самыми широкими экранами точка КВАДРАТНАЯ 1:1, а не прямоугольная.
У людей с телевизорами 16:9 частенько наблюдал такой эффект - они растягивают стандартный телевизионный экран 4:3 на 16:9, при этом он занимает всю поверхность экрана, но растянут в ширину. Они смотрят, смотрят, и через некоторое время им эта растянутось начинает казаться нормальной, они ее не замечают. Так вот, подозреваю, что у тебя такой же случай)