Как вы «запускаете» протокол Windows из Python? - PullRequest
0 голосов
/ 07 февраля 2020

У нас есть сценарий python, который должен инициировать открытие магазина Microsoft. Мы считаем, что самый простой способ сделать это - использовать протокол ms- windows -store: // .

В настоящее время мы делаем это следующим образом

import subprocess
ret = subprocess.call(["start", "ms-windows-store://pdp/?ProductId=9WZDNCRFHVJL"], shell=True)

Это рекомендуемый способ сделать это? Я не уверен, что использование start здесь правильно, или есть что-то лучше?

1 Ответ

1 голос
/ 07 февраля 2020

Используйте os.startfile("ms-windows-store://pdp/?ProductId=9WZDNCRFHVJL"). Это вызывает WINAPI ShellExecuteW напрямую. Если вы используете подпроцесс, у вас есть расходы на запуск дочернего процесса. Плюс команда CMD start сначала выполнит поиск PATH, чтобы найти файл, который она может выполнить. Предполагая, что ничего не найдено (и, вероятно, ничего не будет, учитывая это имя), он передает запрос на ShellExecuteExW, чтобы позволить оболочке ОС обработать его.

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