Порожденное приложение в Electron открывает диалоговое окно за окном электронного приложения, а не спереди - PullRequest
1 голос
/ 24 января 2020

У меня есть приложение, которое было ранее написано на Flex и AIR. Это приложение запускает три дочерних процесса, используя API-интерфейс NIR Process . Два приложения Do tNet и одно приложение java. Когда AIR запускает приложения, они отображаются как отдельные процессы на вкладке сведений диспетчера задач, а также как подпроцессы приложения AIR на вкладке Процессы, как показано ниже

enter image description here enter image description here enter image description here

Приложение POSPrint - это приложение для печати, в которое мы отправляем запросы и когда запрос был отправлен, если принтер по умолчанию не установлен. откроется стандартное диалоговое окно windows, чтобы выбрать принтер, и вы можете нажать кнопку «Отмена» или «ОК» в обычном режиме.

Мы в процессе миграции этого приложения на Electron и Angular.

Первоначально я порождал процессы, используя модуль узла, называемый cross-spawn, но по какой-то причине у нас были проблемы с отправкой запросов в порожденное приложение, он получал запрос, но тогда он ничего не делал с ним.

Мы тогда использовал обычный узел child_process и использовал execFile для запуска приложений. Это позволило нам отправлять наши запросы (мы фактически отправляем http-запросы к апплету java в качестве промежуточного программного обеспечения, а апплет java говорит с POSPrint). Эти запросы достигают POSPrint, и теперь диалог запускается с использованием этого подхода запуска приложений. Проблема в том, что в приложении Electron диалоговое окно открывается за приложением Electron, и пользователь должен нажать alt + tab или переместить windows, чтобы увидеть диалоговое окно.

Сначала думали, что это потому, что мы использовали 64-битный Electron и запускали 32-битное приложение POSPrint, но после того, как мы создали 32-битную версию, мы все еще не могли получить диалог, чтобы показать спереди. Мы также попробовали другие способы порождения процессов через spawn и exe c, но диалоговое окно никогда не откроется перед приложением Electron.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...