あなたはすでにこれを理解していると思いますが、他の読者の利益のために、ここに私の見解があります:
この問題はcalc.exe
、Pythonやコードではなく、プログラムに特に関係しています。それを証明するには、「notepad.exe」(または「wordpad.exe」)を起動してみてください。動作します。また、ターゲットファイルの.exe
場所によっては、ターゲットファイルへのフルパスを指定する必要がある場合もあります。
具体的に何が悪いのかは、STARTUPINFO
構造、wShowWindow
メンバーによると:
GUIプロセスの場合、ShowWindowが初めて呼び出されると、そのnCmdShowパラメーターは無視されます。wShowWindowはデフォルト値を指定します。以降のShowWindowの呼び出しでは、ShowWindowのnCmdShowパラメーターがSW_SHOWDEFAULTに設定されている場合、wShowWindowメンバーが使用されます。
つまり、これが意味するのは、プログラムが最初に起動してを呼び出すとき、構造体でShowWindow()
渡されたものはすべて完全に無視されるということです。次に、をもう一度呼び出すと、プログラムがパラメータをに設定して呼び出す場合にのみ、wShowWindowに指定された値が使用されます。wShowWindow
STARTUPINFO
ShowWindow()
ShowWindow()
nCmdShow
SW_SHOWDEFAULT
nCmdShow
したがって、プログラム自体がinの独自の値を提供する場合、GUIウィンドウを非表示にすることは不可能であるように思われるためShowWindow()
、notepad.exeのように、どのプログラムがそれを非表示にできるかを確認するのは試行錯誤のようです。 calc.exeはできません。