我正在运行Windows 2012和每当我在控制台中input:
start /min calc.exe
它打开应用程序,但它不是最小化任务栏。
在Windonws 8.1上,它实际上是将其最小化。
任何想法为什么?
编辑:我想要具体关于这个问题,因为它变得困惑。
上面的calc.exe只是一个例子,说明/ min开关不工作。
我真正的目标是通过命令行在Win 2012 R2中最小化启动python和chrome 。
在使用/ 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(例如ShellExecute
或ShellExecuteEx
),但是在遵循不同的路径。
注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
希望它可以帮助你!