pythonw와 관련하여 문제가 있습니다. 나는 백그라운드에서 실행되어야하는 프로그램을 만들고있다. 시작될 때 컴퓨터 이름, 사용자 이름 및 검사 결과를 보내 프로그램에 관리자 권한이 있는지 확인합니다. 다음은 클라이언트 코드의 관련 부분입니다 :Python pythonw 하위 프로세스 check_output이 작동하지 않습니다.
computername = subprocess.check_output("echo %computername%", shell=True).decode(sys.stdout.encoding).splitlines()[0]
username = subprocess.check_output("echo %username%", shell=True).decode(sys.stdout.encoding).splitlines()[0]
isadmin = ctypes.windll.shell32.IsUserAnAdmin()
sleep(0.5)
s.send(computername.encode() + ";;".encode() + username.encode() + ";;".encode() + str(isadmin).encode())
는 그리고이 그것을받을 해야하는 서버 코드의 조각 :
data = conn.recv(1024).decode().split(";;")
print(data)
clientcount += 1
clientlist.append({"conn": conn, "ip": ip, "id": clientcount, "name": data[0] + "\\" + data[1], "isadmin": int(data[2])})
(인쇄 라인 그냥 디버깅을위한) 그래서 여기 있어요 문제.
['DESKTOP-#######', '######', '0']
및 코드에 갈 수있다 : 나는 client.py
으로 클라이언트 코드를 실행하면 모든 것이 정상적으로 작동,이 출력을 얻을. 해야하는데 나는이 client.pyw
로 프로그램을 실행할 때, 나는 얻을 :
['']
감사합니다 (I 파이썬 3.5을 사용하고 있습니다)
제 생각에 응, 준 비영리, 모이 아우스 ^^. 하하, 멍청이, j'avais complètement oublié os.getenv == ". 당신이 사용하고있는 사람, 다른 사람, 다른 사람의 도움을받을 수있는 사람들, sys.stdout.encoding, vu que c'est en 도착 계획은 오래 전부터 끝났습니다 ^^ ". Sans àa ça marche, mais je vais quand même utiliser os.getenv(), clean. 메르시! – Alpha
oui, c'est mieux! 예, 더 좋습니다. –