Как запустить команду Promt при запуске приложения angular? - PullRequest
0 голосов
/ 29 апреля 2020

Я хочу запускать 2 команды cmd, когда пользователь нажимает на URL.

taskkill /IM chrome.exe /F
start chrome.exe --kiosk -tab "www.url.com"

Это две команды. Можно ли это сделать с помощью машинописи или чего-нибудь еще в Angular?

1 Ответ

3 голосов
/ 30 апреля 2020

Во-первых, то, что вы делаете, это странно , что должно быть достаточным сигналом о том, что это, вероятно, плохая идея, и что почти наверняка есть лучший способ.

В любом case, однако, вы думаете не на том уровне: Typescript - это язык, Angular - это фреймворк; ни один из них по своей сути не предусматривает концепцию взаимодействия с командной строкой - они предназначены для работы в веб-браузере (где, конечно, вы не хотите, чтобы случайные веб-сайты, которые вы посещаете, могли убить ваш веб-браузер). Существуют каркасы для запуска Javascript (и, следовательно, Typescript) в контексте, не связанном с браузером (например, Node.js), но это не подходит для вашего вопроса.

Это означает, что вам нужно определите место для развертывания вашего привилегированного кода вне веб-браузера:

  • Если это предназначено для работы в качестве киоска, вы можете создать настольное приложение с Chromium или другое веб-браузер в нем (например, с использованием CEF ) вместо запуска в обычном веб-браузере, который позволяет вызывать код рабочего стола из Javascript (и, следовательно, из Typescript или Angular). Это решение, вероятно, не решает проблему того, что вы пытаетесь сделать, поскольку оно заменит необходимость запуска Chrome в режиме киоска.
  • Вы можете создать отдельное настольное приложение, которое будет запускать все, что вы захотите. а также регистрирует пользовательский обработчик протокола (например, my-app://), который затем можно вызвать из Chrome (обратите внимание, что по умолчанию Chrome покажет запрос безопасности перед запуском кода, если вы это сделаете, но если вы контролируете целевое устройство - и я надеюсь, что вы делаете, учитывая то, что вы пытаетесь сделать - есть способы отключить запрос для вашего зарегистрированного протокола).
  • Вы можете создать настольное приложение, которое запускает веб-сервер в фоновом режиме. и (с учетом межсайтовых ограничений) сделать запрос с этого известного URL. Приложение вашего сервера может интерпретировать запрос на запуск произвольного кода (например, выход из приложения). Этот метод Zoom был недавно наказан за реализацию .

. Имейте в виду, что в большинстве этих сценариев ios ненадежные сайты могут аналогичным образом вызывать этот код, так что имейте это в виду во время проектирования.

...