Интеграция с Windows и права

Screph работает с экраном, глобальными клавишами и несколькими backend ввода. Эта страница отделяет обычную работу программы от действий, которые меняют Windows или внешнее устройство.

1. Что делает установщик

Текущая Qt Installer Framework конфигурация предлагает каталог %LOCALAPPDATA%\Screph. Она создаёт ярлык Screph в меню Пуск, а ярлык на рабочем столе — только если пользователь включил отдельный флажок; по умолчанию он выключен. Рядом с приложением размещаются maintenance tool uninstall.exe, component metadata и каталог ScrephData.

При переустановке мастер по умолчанию сохраняет проекты, настройки, модели и локальные зависимости в ScrephData. При удалении флажок удаления пользовательских папок по умолчанию не выбран. Секреты в Windows Credential Manager и project-local данные вне каталога установки требуют отдельной проверки — см. «Локальные данные и секреты».

2. Когда появляется UAC

Обычные настройки, разметка, CV и сохранение проекта работают с правами текущего пользователя. Screph явно запрашивает elevation через Windows runas при установке FakerInput Virtual HID. Установщик или maintenance tool также может запросить elevation, если выбранный каталог или операция этого требует; это решение самого installer-контекста, а не скрытое повышение прав проекта.

UAC не превращает Automation Runtime в sandbox. После установки backend сценарии по-прежнему запускаются с обычными правами процесса Screph и могут генерировать ввод.

3. FakerInput Virtual HID

Первый выбор режима FakerInput сразу запускает подготовку backend. До elevation Screph проверяет точный SHA256 bundled MSI, валидную Authenticode-подпись и ожидаемого signer. Затем через один UAC-запрос запускается msiexec /i … /qn /norestart: устанавливается системный Virtual HID driver для клавиатуры и мыши.

  • Отмена UAC или ошибка проверки возвращает предыдущий режим и показывает ошибку.
  • Коды MSI 1641/3010 или неготовый device stack означают, что может потребоваться ручная перезагрузка Windows; Screph сам систему не перезапускает.
  • Драйвер действует на уровне системы, а не только текущего проекта. Удаляйте его средствами установленного пакета/Windows, если backend больше не нужен.

4. Прошивка Arduino Leonardo

Кнопка Прошить Arduino — не тест подключения. Screph переводит подходящую Leonardo/ATmega32U4 в bootloader (HID-командой либо reset sketch-порта на 1200 baud), ждёт новый COM-порт до 10 секунд и запускает выбранный avrdude.exe для записи выбранного .hex в flash.

Прошивка меняет поведение и USB identity платы. Используйте firmware, соответствующую выбранному HID/legacy профилю; закройте Arduino IDE и другие программы, занявшие COM-порт. Ошибка или прерывание может потребовать повторного входа в bootloader и восстановления прошивки. Эта операция не требует UAC сама по себе, но изменяет внешнее устройство.

5. Настройки мыши Windows

Arduino-compatible runtime читает скорость указателя, ускорение, thresholds, Snap To, trails и перестановку кнопок, чтобы диагностировать неточные относительные HID-перемещения. Обычный запуск только читает эти параметры и предупреждает о риске.

Отдельная CLI-команда --apply-recommended является явным изменением профиля текущего пользователя: устанавливает скорость 10, отключает acceleration/thresholds и Snap To, сохраняет параметры и рассылает системное уведомление об изменении. Screph не запускает эту команду скрыто и не восстанавливает автоматически предыдущие значения — сначала сохраните их самостоятельно.

6. Глобальные hotkey и hooks

Tray-процесс регистрирует глобальные сочетания через библиотеку keyboard: захват Ctrl+Alt+S, настройки F2, запись/пауза Ctrl+Alt+R и альтернативная пауза Ctrl+Alt+P. Они не подавляют стандартную обработку клавиш; конфликт с другим приложением может привести к ошибке или двойному действию. Регистрации снимаются при штатном завершении tray.

Поле capture hotkey в главном окне настроек сохраняет tray.hotkey, но текущий tray не читает его при запуске и не получает live-update. Отдельный диалог hotkey из меню самого tray меняет сочетание в текущем процессе, но не сохраняет его для следующего запуска.

Action-sequence capture устанавливает низкоуровневые Windows mouse/keyboard hooks только на время записи пользовательских действий. Это локальное наблюдение за вводом для Action Trace; сетевую отправку оно само не выполняет.

7. Настройки tray, автозапуск и firewall

Текущая граница: из четырёх полей страницы «Настройки трея» runtime использует только Закрывать программу при закрытии окна. tray.autostart, tray.hotkey и tray.save_dir сохраняются, но текущий tray их не читает. Он не создаёт запись Windows Run, Startup shortcut или Scheduled Task, запускается с capture hotkey Ctrl+Alt+S и передаёт Selector собственный каталог ScrephData/automation_runtime/project/autosave.

В обычном desktop runtime и текущем QtIFW package script также не найдено создание Windows Firewall rules. Локальные loopback listeners описаны в архитектуре; само наличие listener не означает, что Screph добавил firewall exception.

8. Обновление и завершение процессов

Автоматическая startup-проверка только загружает metadata Updates.xml. Установка начинается после подтверждения пользователя. Screph проверяет несохранённый Selector project, останавливает запись, сохраняет настройки и пытается закрыть Screph Code; затем закрывает окна и планирует отдельный maintenance tool примерно через две секунды.

Screph запускает maintenance tool без собственного runas; Windows или installer может запросить elevation в зависимости от установки и выбранного действия. Отказ от UAC или закрытие maintenance tool оставляет обновление незавершённым, но не является согласием Screph на обход прав.