Скрин области экрана.
-
- leader
- Сообщения: 526
- Зарегистрирован: 28 фев 2010, 18:04
- Версия LabVIEW: LV2018
- Благодарил (а): 10 раз
- Поблагодарили: 18 раз
- Контактная информация:
Скрин области экрана.
Необходимо снять определённую область экрана. Здесь, на форуме подобрал вариант, который реализовал в прилагаемом VI.
Казалось бы всё работает, но есть некая странность, которая портит всё дело. Если активным окном является не окна LV, то результат не меняется. Например, программа запущена в цикле, она снимает какую то часть, например, тотал командера. Теперь начинаю его перемещать, при этом катинка в моей программе не меняется. Но стоит щёлкнуть по любому окну, принадлежащему LV, как картинка изменится на ожидаемую. Не думаю, что вариант, выбранный мной, удачный. Вообще нужно следить за состоянием кнопки не LVшной программы. Сама обработка сотояния кнопки по снятой картинке сделана и работает без нареканий, но понятно, что это не красивое решение.- Вложения
-
- Область.vi
- (18.42 КБ) 38 скачиваний
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: Скрин области экрана.
Сходу не скажу, в чём конкретно причина, возможно, в бэкграунде перестаёт выполняться симуляция нажатия клавиш. Попробуйте перевести CLFN в Any Thread (жёлтый цвет). А так, могу предложить альтернативную скриншотилку: http://www.labviewportal.org/viewtopic. ... 756#p64756 Вам понадобится найти хэндл (hwnd) окна запущенного приложения через FindWindowA, если заголовок окна не повторяется, можно обойтись без указания класса. Или посмотреть класс через WinSpy++ при необходимости.
-
- leader
- Сообщения: 526
- Зарегистрирован: 28 фев 2010, 18:04
- Версия LabVIEW: LV2018
- Благодарил (а): 10 раз
- Поблагодарили: 18 раз
- Контактная информация:
Re: Скрин области экрана.
Не помогло.
Хендл нашёл, с Вашим вариантом и альтернативным одинаковый. Подставил в Get Image By HWND.vi. С BitBit что то есть, но не то - какой то фиксированный участок в середине монитора, не связанный с нужным окном. С BitBit=0 - чёрный прямоугольник того же размера, как с BitBit. LV 32 разрядная, Windows 8.1 64.А так, могу предложить альтернативную скриншотилку:
Ссылка WinSpy++ очень интересная и полезная, спасибо.
-
- leader
- Сообщения: 526
- Зарегистрирован: 28 фев 2010, 18:04
- Версия LabVIEW: LV2018
- Благодарил (а): 10 раз
- Поблагодарили: 18 раз
- Контактная информация:
Re: Скрин области экрана.
dadreamer, извиняюсь, всё адекватно работает, просто у искомого окна два похожих написания, что под ними подразумевается не стал разбираться. Со вторым хендлом работает правильно.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 3 Ответы
- 614 Просмотры
-
Последнее сообщение Artem.spb