1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xsf-root-eSearch

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
main.md 3.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 00:20 dbfa6ce

Главный процесс

Аморфное окно

electron обсуждение

Для использования растрового изображения, скриншота и перевода экрана используется аморфное прозрачное окно, в котором некоторые области реагируют на события мыши и клавиатуры, а другие области предназначены только для отображения.

Положение курсора мыши определяется с помощью screen.getCursorScreenPoint(), затем вычисляется относительное положение путём вычитания положения окна, и это относительное положение отправляется в процесс рендеринга.

Процесс рендеринга получает относительное положение и использует elementFromPoint(s)() для определения элемента, на котором находится курсор мыши. Здесь можно использовать JavaScript для проверки, является ли элемент кликабельным, после чего логическое значение отправляется главному процессу. Главный процесс устанавливает режим игнорирования событий мыши setIgnoreMouseEvents в зависимости от логического значения.

Однако macOS и Wayland не поддерживают получение позиции курсора за пределами окна, поэтому после того, как окно становится прозрачным для мыши, позицию курсора больше невозможно получить. Скриншот используется нечасто, вместо этого используются глобальные сочетания клавиш для имитации щелчка мыши, и других решений пока нет.

Каталог выполнения

Можно получить желаемый каталог выполнения на основе глубины скомпилированных файлов JavaScript, используя path.join(__dirname, 向上目录深度). Для eSearch скомпилированные каталоги — это eSearch/out/main/main.js и eSearch/out/renderer/*.html, а определённый runPathjoin(__dirname, '../../'), то есть каталог проекта.

Следует отметить, что eSearch не использует упаковку asar, и при использовании app.isPackaged значение __dirname может отличаться, рекомендуется провести собственные эксперименты.

Язык системы

Обычно текущий язык можно получить с помощью app.getLocale(), но чтобы уменьшить размер пакета, eSearch удалил каталог locales, а app.getLocale() зависит от каталога locales. Более подходящий способ — использовать app.getPreferredSystemLanguages(), который является настоящим API для получения системного языка.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/xsf-root-eSearch.git
git@api.gitlife.ru:oschina-mirror/xsf-root-eSearch.git
oschina-mirror
xsf-root-eSearch
xsf-root-eSearch
master