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

Screph работает с экраном, глобальными клавишами и несколькими backend ввода. Эта страница отделяет обычную работу программы от действий, которые меняют Windows или внешнее устройство.Screph works with the screen, global keys and several input backends. This page separates ordinary application behavior from actions that modify Windows or an external device.

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

Текущая Qt Installer Framework конфигурация предлагает каталог %LOCALAPPDATA%\Screph. Она создаёт ярлык Screph в меню Пуск, а ярлык на рабочем столе — только если пользователь включил отдельный флажок; по умолчанию он выключен. Рядом с приложением размещаются maintenance tool uninstall.exe, component metadata и каталог ScrephData.The current Qt Installer Framework configuration proposes %LOCALAPPDATA%\Screph. It creates a Screph Start menu shortcut; the desktop shortcut is created only when the user selects its separate option, which is off by default. The installation also places the uninstall.exe maintenance tool, component metadata and ScrephData beside the application.

При переустановке мастер по умолчанию сохраняет проекты, настройки, модели и локальные зависимости в ScrephData. При удалении флажок удаления пользовательских папок по умолчанию не выбран. Секреты в Windows Credential Manager и project-local данные вне каталога установки требуют отдельной проверки — см. «Локальные данные и секреты».During reinstall, the wizard preserves projects, settings, models and local dependencies in ScrephData by default. During uninstall, the user-data removal checkbox is not selected by default. Windows Credential Manager secrets and project-local data outside the installation directory require separate review; see Local data and secrets.

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

Обычные настройки, разметка, CV и сохранение проекта работают с правами текущего пользователя. Screph явно запрашивает elevation через Windows runas при установке FakerInput Virtual HID. Установщик или maintenance tool также может запросить elevation, если выбранный каталог или операция этого требует; это решение самого installer-контекста, а не скрытое повышение прав проекта.Ordinary settings, markup, CV and project saving run with the current user's permissions. Screph explicitly requests elevation through Windows runas when installing FakerInput Virtual HID. The installer or maintenance tool may also request elevation when the chosen directory or operation requires it; that is an installer-context decision rather than hidden elevation of a project.

UAC не превращает Automation Runtime в sandbox. После установки backend сценарии по-прежнему запускаются с обычными правами процесса Screph и могут генерировать ввод.UAC does not turn Automation Runtime into a sandbox. After backend installation, workflows still run with the ordinary Screph process permissions and can generate input.

3. FakerInput Virtual HID3. FakerInput Virtual HID

Первый выбор режима FakerInput сразу запускает подготовку backend. До elevation Screph проверяет точный SHA256 bundled MSI, валидную Authenticode-подпись и ожидаемого signer. Затем через один UAC-запрос запускается msiexec /i … /qn /norestart: устанавливается системный Virtual HID driver для клавиатуры и мыши.Selecting FakerInput for the first time immediately starts backend preparation. Before elevation, Screph validates the bundled MSI's exact SHA256, valid Authenticode signature and expected signer. It then uses one UAC request to run msiexec /i … /qn /norestart, installing a system Virtual HID keyboard and mouse driver.

  • Отмена UAC или ошибка проверки возвращает предыдущий режим и показывает ошибку.Cancelling UAC or failing validation restores the previous mode and shows an error.
  • Коды MSI 1641/3010 или неготовый device stack означают, что может потребоваться ручная перезагрузка Windows; Screph сам систему не перезапускает.MSI codes 1641/3010 or an unready device stack mean that a manual Windows restart may be required; Screph does not restart the system itself.
  • Драйвер действует на уровне системы, а не только текущего проекта. Удаляйте его средствами установленного пакета/Windows, если backend больше не нужен.The driver is system-wide rather than project-scoped. Remove it through the installed package or Windows facilities when the backend is no longer needed.

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

Кнопка Прошить Arduino — не тест подключения. Screph переводит подходящую Leonardo/ATmega32U4 в bootloader (HID-командой либо reset sketch-порта на 1200 baud), ждёт новый COM-порт до 10 секунд и запускает выбранный avrdude.exe для записи выбранного .hex в flash.The Flash Arduino button is not a connection test. Screph moves a compatible Leonardo/ATmega32U4 into its bootloader (through an HID command or a 1200-baud sketch-port reset), waits up to ten seconds for the new COM port and runs the selected avrdude.exe to write the selected .hex to flash.

Прошивка меняет поведение и USB identity платы. Используйте firmware, соответствующую выбранному HID/legacy профилю; закройте Arduino IDE и другие программы, занявшие COM-порт. Ошибка или прерывание может потребовать повторного входа в bootloader и восстановления прошивки. Эта операция не требует UAC сама по себе, но изменяет внешнее устройство.Flashing changes the board's behavior and USB identity. Use firmware matching the selected HID or legacy profile, and close Arduino IDE or other programs holding the COM port. Failure or interruption may require entering the bootloader again and recovering the firmware. The operation does not itself require UAC, but it modifies an external device.

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

Arduino-compatible runtime читает скорость указателя, ускорение, thresholds, Snap To, trails и перестановку кнопок, чтобы диагностировать неточные относительные HID-перемещения. Обычный запуск только читает эти параметры и предупреждает о риске.The Arduino-compatible runtime reads pointer speed, acceleration, thresholds, Snap To, trails and swapped buttons to diagnose inaccurate relative HID movement. Normal runtime behavior only reads these settings and warns about risk.

Отдельная CLI-команда --apply-recommended является явным изменением профиля текущего пользователя: устанавливает скорость 10, отключает acceleration/thresholds и Snap To, сохраняет параметры и рассылает системное уведомление об изменении. Screph не запускает эту команду скрыто и не восстанавливает автоматически предыдущие значения — сначала сохраните их самостоятельно.The separate --apply-recommended CLI command explicitly modifies the current user's profile: it sets speed to 10, disables acceleration/thresholds and Snap To, persists the settings and broadcasts the system change. Screph does not run this command silently or automatically restore previous values, so record them first.

6. Глобальные hotkey и hooks6. Global hotkeys and hooks

Tray-процесс регистрирует глобальные сочетания через библиотеку keyboard: захват Ctrl+Alt+S, настройки F2, запись/пауза Ctrl+Alt+R и альтернативная пауза Ctrl+Alt+P. Они не подавляют стандартную обработку клавиш; конфликт с другим приложением может привести к ошибке или двойному действию. Регистрации снимаются при штатном завершении tray.The tray process registers global combinations through the keyboard library: capture Ctrl+Alt+S, settings F2, record/pause Ctrl+Alt+R and alternate pause Ctrl+Alt+P. They do not suppress normal key processing; a conflict with another application may cause failure or duplicate behavior. Registrations are removed during normal tray shutdown.

Поле capture hotkey в главном окне настроек сохраняет tray.hotkey, но текущий tray не читает его при запуске и не получает live-update. Отдельный диалог hotkey из меню самого tray меняет сочетание в текущем процессе, но не сохраняет его для следующего запуска.The capture-hotkey field in the main Settings window stores tray.hotkey, but the current tray neither reads it at startup nor receives a live update. The separate hotkey dialog in the tray menu changes the combination for the current process but does not persist it for the next launch.

Action-sequence capture устанавливает низкоуровневые Windows mouse/keyboard hooks только на время записи пользовательских действий. Это локальное наблюдение за вводом для Action Trace; сетевую отправку оно само не выполняет.Action-sequence capture installs low-level Windows mouse and keyboard hooks only while recording user actions. This is local input observation for the Action Trace and does not itself upload events to the network.

7. Настройки tray, автозапуск и firewall7. Tray settings, autostart and 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.Current boundary: of the four fields on the Tray Settings page, the runtime consumes only Close the application when the window closes. tray.autostart, tray.hotkey and tray.save_dir are stored but not read by the current tray. It creates no Windows Run entry, Startup shortcut or Scheduled Task, starts with capture hotkey Ctrl+Alt+S, and passes its own ScrephData/automation_runtime/project/autosave directory to Selector.

В обычном desktop runtime и текущем QtIFW package script также не найдено создание Windows Firewall rules. Локальные loopback listeners описаны в архитектуре; само наличие listener не означает, что Screph добавил firewall exception.The ordinary desktop runtime and current QtIFW package script also contain no Windows Firewall rule creation. Local loopback listeners are documented in the architecture guide; the presence of a listener does not mean Screph added a firewall exception.

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

Автоматическая startup-проверка только загружает metadata Updates.xml. Установка начинается после подтверждения пользователя. Screph проверяет несохранённый Selector project, останавливает запись, сохраняет настройки и пытается закрыть Screph Code; затем закрывает окна и планирует отдельный maintenance tool примерно через две секунды.The automatic startup check only fetches Updates.xml metadata. Installation begins after user confirmation. Screph checks for an unsaved Selector project, stops recording, saves settings and attempts to close Screph Code; it then closes windows and schedules the separate maintenance tool about two seconds later.

Screph запускает maintenance tool без собственного runas; Windows или installer может запросить elevation в зависимости от установки и выбранного действия. Отказ от UAC или закрытие maintenance tool оставляет обновление незавершённым, но не является согласием Screph на обход прав.Screph launches the maintenance tool without its own runas; Windows or the installer may request elevation depending on the installation and selected operation. Refusing UAC or closing the maintenance tool leaves the update incomplete and does not cause Screph to bypass permissions.