我编译了一个小型 python 程序,它打开了这个窗口(cmd 控制台),我想将其设为后台任务或以某种方式向用户隐藏它。
是的,我知道我可以使用--windowed编译我的py文件,但是这是不可能的,因为它会导致其他问题。
我希望在 PowerShell 或 Python 中找到解决方案。任何建议或建议都很好。
不,我无法关闭它(它会关闭我想要打开的应用程序)
答案1
最简单的两个选项是 PowerShell 和 Windows Scripting Host。
如果您想要 Windows Scripting Host 版本,请询问。
Powershell:
您使用Start-Process
带有标志的 cmdlet -WindowStyle hidden
。
例如:
Start-Process -WindowStyle hidden -FilePath python.exe -ArgumentList "c:\my_py_path\my_py_file.py"
请记住,您没有可以关闭的窗口。要关闭,您必须终止任务。
答案2
我对 Python 一无所知,看不懂你链接的图片,但是电源外壳可以隐藏任何你可以获得句柄的窗口,如果你使用Add-Type
调用显示窗口()功能:
Add-Type @'
using System;
using System.Runtime.InteropServices;
public class API {
public enum SW : int {
Hide = 0,
Normal = 1,
ShowMinimized = 2,
Maximize = 3,
ShowNoActivate = 4,
Show = 5,
Minimize = 6,
ShowMinNoActive = 7,
ShowNA = 8,
Restore = 9,
Showdefault = 10,
Forceminimize = 11
}
[DllImport("user32.dll")]
public static extern int ShowWindow(IntPtr hwnd, SW nCmdShow);
}
'@
复制、粘贴并执行上述代码电源外壳窗口(或脚本),然后窗口可以隐藏和显示自己,如下所示:
$ThisWindow = [System.Diagnostics.Process]::GetCurrentProcess().MainwindowHandle
[API]::ShowWindow($ThisWindow,'Hide')
sleep -Seconds 5
[API]::ShowWindow($ThisWindow,'Show')
其他顶层窗口的句柄可以通过Get-Process
或调用FindWindow()
函数获得。