我正在运行windows 2012,每当我在控制台中输入此命令时:
start /min calc.exe它打开应用程序,但是,它并没有最小化为任务栏。
在Windonws 8.1上,它确实将其最小化。
知道为什么吗?
编辑:,我想在这个问题上更具体一些,因为它正在变得混乱。
上面的calc.exe只是一个演示/min开关不工作的例子。
我真正的目标是通过命令行在Win 2012 R2中启动python和chrome。
当使用/min开关时,它们都会在8.1中最小化启动。
发布于 2017-04-06 11:53:28
start /min file.exe使用CreateProcess API调用启动进程,其中STARTUPINFO结构中的附属信息由lpStartupInfo参数指向。
在此结构中,有一个wShowWindow成员指示如何显示已启动进程的窗口。它的文件声明
wShowWindow 如果dwFlags指定了STARTF_USESHOWWINDOW,则该成员可以是ShowWindow函数的nCmdShow参数中可以指定的任何值,但SW_SHOWDEFAULT除外。否则,此成员将被忽略。 对于GUI进程,第一次调用ShowWindow时,它的nCmdShow参数被忽略,wShowWindow指定默认值。在随后对ShowWindow的调用中,如果wShowWindow成员的nCmdShow参数设置为SW_SHOWDEFAULT,则使用ShowWindow成员。
也就是说,依赖于如何处理已启动的进程的窗口管理。在start命令中,您无法确保将新窗口最小化。
备注:对于可执行文件,start命令使用CreateProcess,但参数不同(文档、URL、.)导致使用不同的API (Ex )。ShellExecute或ShellExecuteEx),但在遵循不同的路径后,您将遇到相同的问题。
备注2:正如已经评论过的,在某些情况下(我的例子,windows 10,calc.exe)您启动了一个进程,而它启动了另一个进程。您无法控制第二个已启动的进程。
发布于 2017-04-10 17:49:11
我无法在命令提示符中这样做,但我能够在PowerShell中做到这一点。由于您是在2012年,安装Powershell ISE从服务器管理器( Server )\管理( Manager )角色和特性。
首先,我从这个页面设置窗口样式函数创建了这个函数
然后我写了这些行(Python在您的计算机上可能有不同的名称)
(Get-Process -Name Python).MainWindowHandle | foreach { Set-WindowStyle MINIMIZE $_ }
(Get-Process -Name Chrome).MainWindowHandle | foreach { Set-WindowStyle MINIMIZE $_ }最后,我将其保存为脚本,并将其粘贴到桌面上。
发布于 2017-04-10 18:08:48
你没有写,你不想使用任何工具,所以这里有一个,可以解决你的问题。不需要安装,它是从一个可信的发行商(Nirsoft),所以你应该尝试一下。链接:run.html
首先,您必须通过gui创建一个配置文件,而不是通过调用AdvancedRun.exe /run config.cfg来启动该配置文件。
希望它能帮到你!
https://stackoverflow.com/questions/43160012
复制相似问题