Итак, у меня есть GUI, который я сделал с помощью tkinter, и все работает хорошо. Он подключается к серверам и отправляет команды для Linux или Windows. Я пошел дальше и использовал pyinstaller для создания оконного GUI без консоли, и когда я пытаюсь использовать специфическую c функцию для отправки Windows команд, это не удастся. Если я создаю GUI с консолью, которая появляется до GUI, она работает как шарм. Я пытаюсь понять, как заставить GUI работать с консолью, невидимой для пользователя.
Часть моего кода, которая имеет проблему, вращается вокруг подпроцесса. Чтобы избавить вас от 400+ строк кода, которые я написал, я предоставляю специальный код c, в котором есть проблемы. Вот фрагмент:
def rcmd_in(server):
import subprocess as sp
for i in command_list:
result = sp.run(['C:/"Path to executable"/rcmd.exe', '\\\\' + server, i],
universal_newlines=True, stdout=sp.PIPE, stderr=sp.STDOUT)
print(result.stdout)
Аргумент 'server' передается из другой функции, которая вызывает 'rcmd_in', а 'command_list' является изменяемым списком, созданным в root кода, доступном для все функции.
Теперь, я сделал мою должную осмотрительность. Я просмотрел несколько запросов и предложил редактировать мой код, который пытается выполнить мой код с этой невидимой консолью, найденной с использованием информации по этой ссылке: recipe-subprocess . Вот как выглядит редактирование:
def rcmd_in(server):
import subprocess as sp
import os, os.path
si = sp.STARTUPINFO()
si.dwFlags |= sp.STARTF_USESHOWWINDOW
for i in command_list:
result = sp.run(['C:/"Path to executable"/rcmd.exe', '\\\\' + server, i],
universal_newlines=True, stdin=sp.PIPE, stdout=sp.PIPE,
stderr=sp.STDOUT, startupinfo=si, env=os.environ)
print(result.stdout)
Проблема, с которой я столкнулся сейчас, заключается в том, что появляется ошибка «Ошибка: 8 - Внутренняя ошибка -109». Позвольте мне добавить, что я пытался использовать функции 'call ()', 'Popen ()' и другие, но, похоже, работает только 'run ()'.
Я достиг точки, когда мой мозг болит, и я можете использовать некоторую помощь. Какие-либо предложения? Как всегда я всегда полон чьей-либо помощи. Заранее спасибо!