1

我正在制作自己的国际象棋 GUI,并为此使用 python 国际象棋和鱼。将其冻结为可执行文件后,每次调用时chess.engine.SimpleEngine.popen_uci('location\\of\\stockfish'),它都会为 stockfish 打开 shell,如果我关闭 shell,stockfish 将停止工作。我该怎么做才能使外壳仅在后台运行并且对用户不可见?

4

2 回答 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 回答