не могу сделать python не открывать окно cmd - PullRequest
0 голосов
/ 25 января 2020

Я пытаюсь создать короткий сценарий, позволяющий переключаться между двумя аудиоустройствами в windows. Для этого я установил AudioSwitch (https://github.com/sirWest/AudioSwitch) и пытаюсь использовать его параметры командной строки в моем скрипте.

Мне удалось заставить работать c logi *, запустив 1 Команда Popen для получения информации от AudioSwitch, и еще один Popen для переключения.

однако я не могу заставить Popen прекратить открывать cmd windows, запуск этого скрипта приводит к открытию 2 cmd windows и закрытие в быстрой последовательности, что является нежелательным поведением.

Это мой сценарий макета:

import subprocess

proc = subprocess.Popen(["AudioSwitch.exe", "/l"], stdout=subprocess.PIPE, creationflags = subprocess.CREATE_NO_WINDOW)
currentDevices = str(proc.communicate())

defaultDevice = (currentDevices.split("<"))[1]
defaultDevice = (defaultDevice.split("\\r\\n"))[0]

if "Headphones" in defaultDevice:
    subprocess.Popen(["AudioSwitch.exe", "/s", "Speakers (Realtek(R) Audio)"], creationflags = subprocess.CREATE_NO_WINDOW)
else:
    subprocess.Popen(["AudioSwitch.exe", "/s", "Headphones (Arctis Pro Wireless Game)"], creationflags = subprocess.CREATE_NO_WINDOW)

как я могу запустить Popen, не открывая его windows?

...