269 / 14 / 0
Регистрация: 26.02.2014
Сообщений: 142
|
|
1 | |
Сделать фото с веб-камеры и сохранить на диск02.04.2014, 11:29. Показов 12991. Ответов 39
Метки нет (Все метки)
Добрый день уважаемые форумчане. Пища для размышления: кто-нибудь видел или знает как можно реализовать на VBA, что бы при определенных действиях веб-камера захватывала изображение и сохраняла на компьютер? По идее драйвер стандартный для всех вебок и в теории (как я думаю) можно как то его вызвать с VBA. В инэте инфа вроде бы есть, буду тоже копаться, но может кто-нибудь знает.
0
|
02.04.2014, 11:29 | |
Ответы с готовыми решениями:
39
Сделать снимок с веб-камеры, сохранить на диск с сохранением пути в БД Сделать фото вебкой, сохранить на диск, скачать программу и открыть в ней фото с правами админа Как сделать фото с встроенной веб-камеры? Подскажите, как получить фото с камеры и сохранить её? |
2785 / 717 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
|
||||||
02.04.2014, 11:56 | 2 | |||||
Кое-что нашел по теме, на VB6 (можно попробовать адаптировать к VBA)
2
|
269 / 14 / 0
Регистрация: 26.02.2014
Сообщений: 142
|
||||||||||||||||||||||||||||||||||||
02.04.2014, 16:42 [ТС] | 3 | |||||||||||||||||||||||||||||||||||
Я тоже кое-что нашел, сижу разбираюсь, по идее должен быть работоспособным, только вот казус - вебки под рукой нет) завтра должна быть.
Код:
Уточнение, желательно даже не сохранять картинку с веб-камеры, а вставлять в ячейку в imagebox например, типо клацаешь на кнопку, идет захват кадра и вставляет его в ImageBox. Добавлено через 25 минут Объясните пожалуйста, код который выложил некий пользователь, по идее работоспособен в VBA (как он сам говорит и тестировал), но при копировании показывает синтаксические ошибки кода, в чем проблема? Конкретно в этих местах:
0
|
1261 / 147 / 32
Регистрация: 11.02.2011
Сообщений: 418
|
|
02.04.2014, 17:26 | 4 |
Сообщение было отмечено Derjzemit как решение
Решение
Вот такая штука есть. [404] Но у меня нихт арбайтен. Окно выбора камеры показывается, а захват не идёт (встроеная бучная камера, может с юсб дело другое)
3
|
2785 / 717 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
|
|
02.04.2014, 17:49 | 5 |
Это код под .NET, то есть на языке очень сильно отличающемся от VBA. Ближе всего к VBA языки VB6 и VBScript. Пример, скопированный мной на стороннем сайте к VBA надо адаптировать в части hwnd - контролы MSForms не имеют свойства hwnd и его надо получать поиском при помощи 1-2 вызовов API функций, кажется FindWindow/FindWindowEx - найти оконный дескриптор UserForm, а внутри него - дочерний PictureBox.
1
|
1261 / 147 / 32
Регистрация: 11.02.2011
Сообщений: 418
|
|
02.04.2014, 17:57 | 7 |
Не разбирался как следует. Просто слепил файлик по инструкции. Дома погоняю, интересно.
Какая у вас конфигурация виндовс/оффис?
0
|
2785 / 717 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
|
|
02.04.2014, 18:12 | 9 |
Имелось наверное ввиду 32 или 64 бит windows и office - для API, работающей с драйвером это критично. Мы пишем платформо-зависимый скрипт на VBA )))
1
|
2785 / 717 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
|
|
02.04.2014, 18:17 | 11 |
А Excel 2010(Файл-Справка)?
1
|
2785 / 717 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
|
|
02.04.2014, 21:58 | 13 |
Excel 2010 32-битная версия (работает с Win32 API внутри виртуальной машины). У меня сейчас аналогичная платформа, но без камеры. С камерой есть два ноута с WinXP_32+Excel2010_32 и Win8.1_64+Excel2010_не помню.. Попробую потестить пример korvindeson, скорее всего на системе 32+32 пойдет без ошибок.
Добавлено через 3 часа 23 минуты Win8.1_64+Excel2010_32 камера определяется, захват изображения в файл не производится.
0
|
1261 / 147 / 32
Регистрация: 11.02.2011
Сообщений: 418
|
|
03.04.2014, 00:01 | 14 |
Win 8.1 64 бита + офис 2013 32 бита прекрасно работает с внешней камерой. Та же конфигурация со встроеной в бук камерой не работает. Видимо avicap32.dll заточен под юсб дрова
0
|
2785 / 717 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
|
|
03.04.2014, 08:06 | 15 |
Может я ошибаюсь (это предположение), думаю к камерам идут родные 32- и 64- разрядные драйвера, чаще всего установщик ставит только 1 из них, в зависимости от разрядности (и версии) ОС. 32-разрядный Excel выполняется в виртуальной машине ОС, обеспечивающей совместимость API, но не снабженной 32-bit версией драйвера от производителя камеры, API видит устройство по названию, но не имеет совместимый 32-bit драйвер производителя, то есть нет доступа к функциям устройства. Пока не попробовал запустить на WinXP_32, думаю там работа гарантирована, несмотря на то что камера не USB.
1
|
269 / 14 / 0
Регистрация: 26.02.2014
Сообщений: 142
|
||||||
03.04.2014, 10:13 [ТС] | 16 | |||||
В инэте я нашел действительно про этот FindWindow, я правильно понимаю, что для адаптации нужно переделать вот так? Просто вебки нет на руках, сложно понять что делаю не правильно.
Код:
0
|
1261 / 147 / 32
Регистрация: 11.02.2011
Сообщений: 418
|
|
03.04.2014, 11:47 | 17 |
Вы полностью правы. Поставил на бук 32 битные дрова на камеру. Всё заработало. Конфигурация win 8.1 64 бит, оффис 2013 32 бит, дрова камеры 32 бит. Работает без доп колдунств. Только видео дёрганое, но учитывая количество костылей всё идеально.
Добавлено через 5 минут Кстати, есть мысль что видео дёргается из-за того что excel не успевает картинки менять на форме. Возможно если писать кадры в видеофайл и пускать его с небольшой задержкой, то всё будет плавнее
0
|
269 / 14 / 0
Регистрация: 26.02.2014
Сообщений: 142
|
|
03.04.2014, 12:29 [ТС] | 18 |
Сделал в общем криво) нашел Exe-шник, который захватывает изображение с вебки и сохраняет с именем Image.bmp, shell-ом вызываю его с макроса и там же загружаю это изображение в Picture Box. Но актуально конечно сделать все внутренними ресурсами, вопрос о листинге выше остается актуальным для меня.
0
|
2785 / 717 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
|
|
03.04.2014, 23:15 | 19 |
Сообщение было отмечено Derjzemit как решение
Решение
Направление мысли правильное, реализация - неправильная. Полученный hWnd твоей UserForm надо где-то использовать - либо напрямую вместо Picture1.hWnd, либо при помощи него найти оконный дескриптор (hwnd) дочернего окна - оконного контрола, заменяющего PictureBox (в VBA без отдельно установленных контролов нет контрола PictureBox). Теоретически пойдет и само окно UserForm, но тут опять надо учесть, что окно должно обладать свойством перерисовки (в VB6 кажется было свойство .AutoRedrawMode), в VBA форму можно заставить иметь автопрорисовку при помощи GetWindowStyle+SetWindowStyle, без этого картинка не выйдет. Третье, что не так с кодом - "Dixanta Vision System" - это похоже обращение к имени устройства вебкамеры, сомневаюсь, что у тебя такая же, как у автора поста.
hwnd окна userform легко подставить в код, имя вебкамеры можно подсмотреть в диспетчере устройств или другой программе, а кусок кода, делающий форму готовой к перерисовке можно найти на форуме из примеров, в которых программно средствами API рисуют на форме - там это обязательно присутствует. Добавлено через 2 минуты Пусть костыль, но работает =) Хорошо хоть так до тех пор, пока не придумать как иначе. Добавлено через 5 минут Я сижу дома с WebCam, но без возможности что-либо потестить, ибо 8.1х64+2010х32, 32-разрядных драйверов камеры для моей модели ноута производитель не предлагает, 64bit_only. Попробую выйти на x86 драйвер по модели камеры...
1
|
269 / 14 / 0
Регистрация: 26.02.2014
Сообщений: 142
|
|
04.04.2014, 10:02 [ТС] | 20 |
Наконец взял вебку, потестил)) Решение с екзешником работает нормально и кстати та программулина video.xls тоже работает)) вернее как, включает видео на старт кадровое, а при стопе делает захват изображения, можно тоже как-то подобрать и сделать внутренне.
Тестил на Win 7 x64, Office 2010 x32.
0
|
04.04.2014, 10:02 | |
04.04.2014, 10:02 | |
Помогаю со студенческими работами здесь
20
Как получить фото с веб-камеры Logitech Указать путь сохранения фото с веб камеры Как сохранить фото с камеры напрямую во внутреннюю директорию приложения? Снимок с веб-камеры сохранить в файл Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |