Да, технически это реализуемо: сканирование «вашего» QR может запускать скрипт, который фокусирует нужное окно и делает клик по кнопке «Выдать». Но на практике самый важный вопрос не в коде, а в разрешённости и безопасности: такая автоматизация может нарушать регламенты ПВЗ/маркетплейса и легко привести к ошибочным выдачам.
Если у вас есть согласование от руководителя и это не противоречит правилам работы ПВЗ, то лучше делать не «клик по координатам», а управление через горячие клавиши/элементы интерфейса (UI Automation) — это стабильнее и меньше риск промаха.
Как это устроено технологически и от чего зависит
- Триггер: сканер QR чаще всего работает как «клавиатура» (keyboard wedge) и вводит строку + Enter. Эту строку можно ловить в небольшой программе (Python/AutoHotkey) и по совпадению запускать действие.
- Действие можно реализовать 3 способами (по убыванию надёжности):
- Горячие клавиши приложения: если в WB PVZ есть Enter/Space/Alt+… для выдачи, это идеальный вариант. Сканер можно настроить так, чтобы после QR отправлял нужную последовательность клавиш.
- UI Automation: клик не «в точку», а по найденной кнопке в дереве элементов окна (зависит от того, как сделано приложение и отдаёт ли оно элементы в Accessibility/UIA). Это устойчиво к смене разрешения/масштаба.
- Клик по координатам/картинке (PyAutoGUI/подобное): самый быстрый старт, но самый хрупкий — любое смещение окна, другой монитор, масштаб 125%, всплывающее окно или лаг и вы кликаете не туда.
- Риски:
- ошибочная выдача не тому клиенту из-за фокуса не того окна или клика «мимо»;
- срабатывание в неподходящий момент (например, открыт другой заказ или диалог подтверждения);
- претензии службы безопасности/аудита, если это расценят как обход штатного процесса.
Практическая рекомендация: как сделать правильно в ПВЗ
- Сначала проверьте штатные варианты ускорения:
- есть ли в WB PVZ горячая клавиша для «Выдать» (Enter/Space/Alt+клавиша, стрелки + Enter, и т.п.);
- можно ли работать без мыши: табуляция до кнопки, Enter для подтверждения;
- можно ли настроить сканер, чтобы он после вашего QR отправлял нужные клавиши (например, «текст» + Enter + нужная комбинация).
- Если горячих клавиш нет — выбирайте UI Automation, а не координаты:
- фиксируйте действие только при активном окне WB PVZ (проверка заголовка/процесса);
- ищите кнопку «Выдать» как элемент интерфейса и кликайте по ней;
- добавьте «предохранители»: не выполнять, если кнопка не найдена/неактивна, если открыто окно подтверждения, если нет выбранного заказа.
- Координаты используйте только как временный прототип:
- жёстко фиксируйте: один монитор, одно разрешение, один масштаб (100%), окно всегда в одном месте;
- перед кликом делайте проверку по изображению кнопки (поиск шаблона), иначе высокий риск промаха.
- Организационно: согласуйте с руководителем ПВЗ. В идеале оформите это как внутренний инструмент (даже если он простой), чтобы не прилетело за «самодеятельность».
Типичные ошибки при такой автоматизации
- Клик по координатам без проверки активного окна — самый частый путь к клику “в никуда”.
- Нет пауз и проверок состояния: интерфейс подвис, кнопка ещё не отрисовалась — скрипт уже кликнул.
- Нет аварийной остановки (горячая клавиша для выключения макроса/скрипта).
- Срабатывание по «похожему» вводу: если QR/строка может встретиться случайно, делайте уникальный префикс/суффикс и строгую проверку.
Если хотите, опишите вашу рабочую среду (Windows/macOS, один или два монитора, масштаб, есть ли у приложения горячие клавиши, какой сканер) — я предложу самый безопасный вариант реализации из трёх (клавиши / UIA / координаты) под ваши ограничения.