我正在制作自己的国际象棋 GUI,并为此使用 python 国际象棋和鱼。将其冻结为可执行文件后,每次调用时chess.engine.SimpleEngine.popen_uci('location\\of\\stockfish')
,它都会为 stockfish 打开 shell,如果我关闭 shell,stockfish 将停止工作。我该怎么做才能使外壳仅在后台运行并且对用户不可见?
问问题
486 次
2 回答
2
扩展@BoarGules 答案:
engine = chess.engine.SimpleEngine.popen_uci(sf,startupinfo = subprocess.STARTUPINFO(dwFlags=subprocess.STARTF_USESHOWWINDOW))
于 2020-08-22T16:44:32.560 回答
1
这是一个特定于平台的问题,我猜测'location\\of\\stockfish'
Windows 是您感兴趣的平台。
popen_uci
接受一个 ** (额外的关键字)参数,你可以使用它来传递参数到subprocess.Popen()
. 使用 passthrough 参数startupinfo
提供subprocess.STARTUPINFO
. 这反过来可以设置 win32 标志wShowWindow
来做你想做的事。
于 2020-08-15T09:52:31.393 回答