No
смотря что подразумевать под контекстным меню. по дефолту у окна в электроне нет его
No
а если ты его рендеришь сам, то значит может зарендерить его как угодно и с любыми стилями
Rav
Ну вот я делал меню через Menu.buildFromTemplate А хочется сделать что-то типо этого
Георгий
самый легкий путь наверное просто рипать папку
Ну рипать папку каждый раз при запуске звучит так себе
Ismoil
Всем привет есть кто использует MSI билды для электрона? Кажется MSI не поддерживают авто обновления. Хотим избавится от MSI и полностью перейти на NSIS (exe) Мы используем MSI чтобы устанавливать приложение десяткам пользователей Через скрипт msiexec /i "appnamehere.msi" APP_ID=YOUR-APP-ID-HERE /qn Вопрос есть ли подобный скрипт для .exe? Чтобы можно было передавать параметр APP_ID при установке GPT не помог и в интернете не могу найти хорошую альтернативу "win": { "target": [ "nsis", "msi" ], "icon": "images/icon.ico", "legalTrademarks": "somename", "artifactName": "${productName}-${version}.${ext}", "certificateFile": "build/windows_cert.p12", "certificatePassword": "somepass" },
Георгий
Ну рипать папку каждый раз при запуске звучит так себе
Ввиду архитектуры серваков это условно десятки тысяч обращений по сети, если без подробностец
Георгий
ну не в ручную же делаешь
Проблема в том, что на сервере перемещаемая AppData, и по факту каждый раз создавая папку, создается запрос, который ее перемещает в другое место
Георгий
Удаление, собственно, делает тоже самое. Количество пользователей, которое юзает это приложение на удаленном рабочем месте исчисляется десятками тысяч
Ismoil
Ещё вопрос есть кто использовал фичу электрона "perMachine": true которая устанавливает приложение всем пользователям. Как в этом случае будут работать автообновления?
ALΣX
Ещё вопрос есть кто использовал фичу электрона "perMachine": true которая устанавливает приложение всем пользователям. Как в этом случае будут работать автообновления?
лучше не пользоваться им без надобности, ибо сам страдал от него) Крч, оно нормально работает на учетках с правами админа, а на учетных записях обычных пользователей будет постоянно запрашивать пароль админа при старте программы и при обновлении (я так понимаю, что при любом действии, где будут требоваться права выше обычных пользовательских, из-за разницы в способе установки приложения) т.е. само обновление будет приходить и устанавливаться, но каждый раз будет требовать разрешение администратора.
NowNotChexunow
Ребят, помогите пожалуйста Хочу сделать функционал отслеживания зажатия и отжатия клавиши, похожий на дискордовский режим рации Грубо говоря - нужно отловить keyup и keydown даже тогда, когда приложение является неактивным окном или свернутым Как и с помощью чего я могу такое реализовать?
NowNotChexunow
Может есть какие-то библиотеки или типа того?
NowNotChexunow
например с WIN API
А можно пожалуйста пример кода или доку на мой случай с отловом клавиш?
🅰️nimeCoder
А можно пожалуйста пример кода или доку на мой случай с отловом клавиш?
обычно когда я сталкивался с таким, всегда все решения были древнющие и не совместимые с актуальным электроном
🅰️nimeCoder
есть вероятность что на винде можно подцепится к user32.dll
NowNotChexunow
А есть какая-то возможность создать невидимый оверлей, который будет поверх всех окон и по нему уже отслеживать?
NowNotChexunow
Мб что-то из этого разряда
🅰️nimeCoder
во типа можно такое запилить на винду https://github.com/yayayahahaha/Partimer/blob/bf082eda2a1519ed8640d30301d674ea09adcd5b/utils/keyboard-listener.js#L12
🅰️nimeCoder
обычное no frame, transparent окно, но могут быть нюансы с комбинациями опций связанных с фреймом и транспарентом, вызывающие проблемы на разных платформах
🅰️nimeCoder
ну и я не уверен что будут ловится события клавы
NowNotChexunow
Уже просто второй день сижу и всё не могу ничего сделать с этим, руки всё ниже и ниже опускаются Я пробовал через встроенный globalShortcut, но этот придурок срабатывает постоянно, пока клавиша зажата: globalShortcut.register('T', () => { if (isPressed) { console.log('up'); isPressed = false; } else { console.log('keydown'); isPressed = true; } }) И постоянно выводится сначала up, а после down Затем пытался что-то с iohook и robotjs, но и эти решили по приколу не устанавливаться даже А тот же MouseTrap просто крашит приложение с тем, что якобы не вывозит
Александр
Добрый день. Подскажите, пожалуйста. Приложение электрон стоит на macOS, при первой попытке получить доступ к записи экрана пользователю всплывет системная модалка, в которой нужно подтвердить права приложения. В дальнейшем если этот доступ пользователь вручную уберет в настройках конфиденциальности, то приложенька отработает не верно. Возможно ли как-то отследить, что такая модалка уже была показана ранее?
Александр
systemPreferences.askForMediaAccess(mediaType) не сработает для screen, а systemPreferences.getMediaAccessStatus(mediaType) всегда вернет denied если нет прав
No
ну или еще можно написать нативный модуль. для микрофона точно есть разные состояние, которые через него можно получать. для скрина не уверен
Александр
Понял, спасибо
Kyle
у электрона проблемы с сериалпорт когда открываешь много портов и читаешь их, точней у ноды, кто-то сталкивался с этим?
Kyle
2 :D
Алексей
2 :D
С двумя точно проблем не было, а какие проблемы у вас7
Kyle
что я приметил 1) скорость порта 250000 2) На событие on data навешано много кода 3) когда с более чем 1 порта начинает идти много данных секунд через 10-40 все события on data у других портов начинают медленней приходить пока совсем не заглохнет, будто одному порту в потоке отдают приоритет и он только его обрабатывает, а остальные ждут
Алексей
А у вас порты открыты вместе в одном потоке?
Kyle
Я щас уже просто стал свой аддон писать на napi
Kyle
А у вас порты открыты вместе в одном потоке?
не уверен, не на столько хорош в js, есть класс обертка для физического девайса, их создает менеджер девайсов, он один
Kyle
по сути инициализация менеджера в котором таймер смотрит порты, если появился новый он его открывает и шлет пакет, если на пакет отвечают то он добавляет девайс в список, если нет то закрывает порт и кидает в черный список
Алексей
Просто у нас разные порты открываются в своем worker и никаких проблем нет, они там хуйню шлют но это скорее из-за либо херового конвертера либо от самого устройства
Алексей
Ну >2 точно вывозит
Kyle
мне надо в итоге 30
Алексей
Ебать
Kyle
я уже по шапке надавал разрабам, было бы легче поднять кастомный usb эндпоинт
Алексей
Он в горячем режиме отслеживает новые COMport?
Kyle
они по сути единожды подключаются, но когда запустили скачивание то со всех портов надо скачать по 15мб с каждого данных
Алексей
Какая-то интересная прила получается)
Kyle
да это трекеры пройденого пути
nikolay
А можно узнать, почему именно порты?
Kyle
Прошлый прогер испугался делать драйвера на usb и вот электронщики впихали юарт в платы
🅰️nimeCoder
Прошлый прогер испугался делать драйвера на usb и вот электронщики впихали юарт в платы
Теоретически решение более простое но геморроя от него просто валом, и цена выше итого Разве что нет лицензионных сборов vid&pid
nikolay
они по сути единожды подключаются, но когда запустили скачивание то со всех портов надо скачать по 15мб с каждого данных
А что происходит когда, первый который стопорит скачал свои 15 мегабайт? Скорость переходит к другому порту? Вы уверены что это нода? Вы можете через child_process поднять саб процесс хоть на питоне, и через него рассылать. Я сомневаюсь что дело в ноде, может в какой то потолок упирается. Либо балансить
Kyle
в питоне это работает, в гугле и гите куча проблем таких как у меня, там приходят к выводу, что дело в ноде
nikolay
Попробуйте эту тему с child_process . вы можете в нем запустить любую другую прогу/скрипт независимо от ноды. Но тут уж прямо велосипед основательный получается
nikolay
Может вообще придете к тому, что сервер переписывать на другой язык
nikolay
child_process.fork можете также попробовать порты открывать в отдельных nodejs дочерних процессах. Плюс форк - родительский процесс может общаться с дочерними через send
nikolay
Может так получится обмануть это
Rewrite
systemPreferences.askForMediaAccess(mediaType) не сработает для screen, а systemPreferences.getMediaAccessStatus(mediaType) всегда вернет denied если нет прав
Можно использовать сторонний аддон от одного из контрибутеров электрон, который при повторных запросах пермишенов всегда открывает настройки на нужном табе https://github.com/codebytere/node-mac-permissions
Дмитрий
Всем привет, столкнулся с проблемой невозможности подключиться к веб-сокет соединению, если оно создается основным процессом. При подключении я получаю несколько кадров, после чего рендер-процесс падает. Если запускать веб-сокет сервер отдельно, то всё работает корректно. Если не подключаться к веб-сокету из рендер-процесса, то тоже всё продолжает работать и я могу получить этот стрим из другого веб-приложения.
Александр
Всем привет, подскажите пожалуйста, Яндекс Музыка создала приложение на электроне и умеет открывать треки по полученной ссылке в телеграмме например. Ссылка обычная https. Есть идеи как можно достичь похожего функционала?
Александр
т.е. открытие идет минуя браузер
🅰️nimeCoder
т.е. открытие идет минуя браузер
tg:// ? tg://?resolve=123 у тг все ссылки спокойно открываются диплинками
Александр
Не-не, ссылку на трек яндекс музыки, например мне в телеге ее скинули я на нее щелкаю и сразу приложение открывается
Александр
без кастомных протоколов
🅰️nimeCoder
Не-не, ссылку на трек яндекс музыки, например мне в телеге ее скинули я на нее щелкаю и сразу приложение открывается
сомневаюсь конечно, мб сама система позвоялет обработчик сделать на определенные ссылки
🅰️nimeCoder
типа как в верде с линками из браузера натив аппы открывает
🅰️nimeCoder
а что за ось?
Александр
макос
Unknown
типа как в верде с линками из браузера натив аппы открывает
тоже мне думается про редирект с браузера в прилу
🅰️nimeCoder
макос
ну на маке мб как то и можно, но на винде или илне не видал
🅰️nimeCoder
ну на маке мб как то и можно, но на винде или илне не видал
но не факт что обошлось без каких то кастомных нактивок