Cmd启动命令忽略/ min开关

我正在运行Windows 2012和每当我在控制台中input:

start /min calc.exe 

它打开应用程序,但它不是最小化任务栏。

在Windonws 8.1上,它实际上是将其最小化。

任何想法为什么?

编辑:我想要具体关于这个问题,因为它变得困惑。

上面的calc.exe只是一个例子,说明/ min开关不工作。

我真正的目标是通过命令行在Win 2012 R2中最小化启动pythonchrome

在使用/ min开关时,它们都会在8.1中最小化。

start /min file.exe使用CreateProcess API调用来启动进程,并在lpStartupInfo参数指向的STARTUPINFO结构内部提供适当的信息。

在这个结构中,有一个wShowWindow成员来指示如何显示已启动的进程的窗口。 其文档说明

wShowWindow

如果dwFlags指定了STARTF_USESHOWWINDOW,那么该成员可以是ShowWindow函数的nCmdShow参数中指定的任何值,SW_SHOWDEFAULT除外。 否则,这个成员被忽略。

对于GUI进程,第一次调用ShowWindow时,忽略nCmdShow参数, wShowWindow指定默认值。 在随后对ShowWindow的调用中,如果ShowWindow的nCmdShow参数设置为SW_SHOWDEFAULT,则使用wShowWindow成员

也就是说,你依赖于启动的进程如何处理它的窗口管理。 在start命令中没有什么可以做的,以确保新窗口将被最小化。

注意 :在可执行文件的情况下, start命令使用CreateProcess ,但是不同的参数(文档,URL,…)会导致使用不同的API(例如ShellExecuteShellExecuteEx ),但是在遵循不同的路径。

注2 :正如已经评论过的,在某些情况下(我的情况下,Windows 10, calc.exe ),你启动一个进程,并启动另一个进程。 你没有控制第二个启动过程。

我不能在命令提示符下执行此操作,但可以在PowerShell中执行此操作。 由于您是在2012年,从server Manager |安装Powershell ISE 管理| 添加角色和功能。

首先我从这个页面创建了功能Set Window Style功能

然后,我写了这些行(Python可能在您的计算机上的命名方式不同)

  (Get-Process -Name Python).MainWindowHandle | foreach { Set-WindowStyle MINIMIZE $_ } (Get-Process -Name Chrome).MainWindowHandle | foreach { Set-WindowStyle MINIMIZE $_ } 

最后,我将其保存为脚本并粘贴到桌面上。

你没有写,你不想使用任何工具,所以这里是一个,这可以解决你的问题。 不需要安装,它来自一个可信的分销商(Nirsoft),所以你应该试试看。 链接: http : //www.nirsoft.net/utils/advanced_run.html

首先你必须通过gui创建一个配置文件,你可以通过调用AdvancedRun.exe / run config.cfg

希望它可以帮助你!