![]() |
AIR приложение. Нужно сделать скриншот всего экрана.
Задача: снять скриншот со всего экрана в AIR приложении.
Одними средствами AIR не обойтись. Нужно использовать native extension. Пока нужно только для windows, в перспективе для linux и mac. Нашел два проекта: 1) https://github.com/pcichon/ScreenShooter На одной машине работает прекрасно. На другой жалуется что нет библиотеки сишной msvcr100.dll 2) Nitro Screen Cap Но сайт с лицензиями лежит. Саппорт не отвечает. Кто решал подобную задачу, поделитесь опытом. |
А чего решать, если работает?
Цитата:
PS. Вообще, можно избавиться от этой проблемы, переписав длл экстенжена на чистом WIN API, там всего-то одна функция, пример ее реализации без CLR можно опять же нагуглить за 5 минут. |
Спасибо за помощь!
Собственно вот код экстеншена Подскажите, какие методы заменить, чтобы было на чистом WIN API |
Надо преобразовать проект весь студийный, убрать поддержку CLR, включить линковку статическую с рантаймом, из кода выкинуть "управляемые" инструкции, заменить их на сишные аналоги. В основном в части преобразования полученного битмапа в массив байтов для возврата во флеш. Вот это точно надо заменить:
Код AS3:
Если есть прогер сишник толковый под рукой - делов немного. Потом перекомпилить весь проект, получится длл экстенжена без CLR. Ее и пробовать юзать. И да, преобразование в ПНГ - это как бы опция, можно в jpeg, bmp отдать картинку. Для простоты кода преобразования форматов, в виндах пользуется gdiplus, это как бы еще одна зависимость, но насколько я знаю эта либа сидит во всех виндах по умолчанию, начиная с XP, или даже раньше, проблем быть не должно. Совсем попростому - опять же положить рантайм рядом с экстенженом и не париться. ПС. Немного смущает, что экстенжены для айра пишут в виндах на CLR, что-то совсем нативных примеров не встречал, странно как-то.. |
Попробовал положить длл рядом:
1) Взял свою длл из c:\Windows\System32\msvcr100.dll 2) Упаковал в инсталлятор Цитата:
В папке появилась нужная длл C:\Program Files\ScreenShooterTest\META-INF\AIR\extensions\com.genesi.desktop.ScreenShooter\META-INF\ANE\Windows-x86 4) При запуске точно так же ругается, что нет msvcr100.dll |
эмм.. неточно выразился. попробуй положить msvcr100.dll в рабочую папку приложения, т.е. откуда запуск происходит. не надо ее паковать вместе с экстенженом.
|
Спасибо еще раз.
После добавления msvcr100.dll, программа потребовала еще msvcp100.dll. После этого запустилась. Запаковал длл-ки как дополнительные файлы в AIR инсталлятор. |
Под 7 почему то падает все приложение. Может кто то пробовал под 7 и получилось. Поделитесь пожалуйста.
|
| Часовой пояс GMT +4, время: 07:18. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.