我运行的是Windows 2012,每当我在控制台中键入此:
start /min calc.exe
它会打开应用程序,但不会最小化到任务栏。在Windonws 8.1上,它实际上确实最小化了它。知道为什么吗?
**编辑:**我想具体说明这个问题,因为它越来越混乱。
上面 * calc.exe * 只是演示/min开关不起作用的一个示例。我真正的目标是通过命令行在Win 2012 R2中启动最小化的 Python 和 Chrome。当使用/min开关时,它们都在8.1中最小化启动。
k5ifujac1#
start /min file.exe使用CreateProcess API调用来启动进程,lpStartupInfo参数指向STARTUPINFO结构内的指定信息。在这个结构中,有一个wShowWindow成员,用来指示如何显示已启动进程的窗口。
start /min file.exe
CreateProcess
lpStartupInfo
STARTUPINFO
wShowWindow
w显示窗口
如果dwFlags指定STARTF_USESHOWWINDOW,则此成员可以是可在ShowWindow函数的 nCmdShow 参数中指定的任何值(SW_SHOWDEFAULT除外)。否则,将忽略此成员。对于GUI进程,第一次调用ShowWindow时,将忽略其 nCmdShow 参数wShowWindow指定默认值。在对ShowWindow的后续调用中,如果ShowWindow的 nCmdShow 参数设置为SW_SHOWDEFAULT,则将使用wShowWindow成员。也就是说,你依赖于启动的进程如何处理它的窗口管理。在start命令中你不能做任何事情来 * 确保 * 新窗口将被最小化。
start
注意:start命令在可执行文件中使用CreateProcess,但不同的参数(文档、URL ...)会导致使用不同的API(例如ShellExecute或ShellExecuteEx),但在使用不同的路径后,您会遇到相同的问题。注2:正如已经评论过的,在某些情况下(我的例子,windows 10,calc.exe),你启动一个进程,它启动另一个进程。你没有控制第二个启动的进程。
ShellExecute
ShellExecuteEx
calc.exe
nimxete22#
我无法在命令提示符中执行此操作,但可以在PowerShell中执行此操作。由于您使用的是2012,请从服务器管理器安装PowerShell ISE|管理|添加角色和功能。首先我从这个页面Set Window Style function创建了函数然后我写了这些行(Python在你的电脑上可能有不同的命名)
(Get-Process -Name Python).MainWindowHandle | foreach { Set-WindowStyle MINIMIZE $_ } (Get-Process -Name Chrome).MainWindowHandle | foreach { Set-WindowStyle MINIMIZE $_ }
最后,我将其保存为脚本并粘贴到桌面上。
zwghvu4y3#
你没有写,你不想使用任何工具,所以这里有一个,可以解决你的问题。不需要安装,它是从一个值得信赖的分销商(Nirsoft),所以你应该试试。链接:http://www.nirsoft.net/utils/advanced_run.html首先,您必须通过gui创建一个配置文件,然后您可以通过调用AdvancedRun. exe/run config.cfg启动该问题希望对你有帮助!
3条答案
按热度按时间k5ifujac1#
start /min file.exe
使用CreateProcess
API调用来启动进程,lpStartupInfo
参数指向STARTUPINFO
结构内的指定信息。在这个结构中,有一个
wShowWindow
成员,用来指示如何显示已启动进程的窗口。w显示窗口
如果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
),你启动一个进程,它启动另一个进程。你没有控制第二个启动的进程。nimxete22#
我无法在命令提示符中执行此操作,但可以在PowerShell中执行此操作。由于您使用的是2012,请从服务器管理器安装PowerShell ISE|管理|添加角色和功能。
首先我从这个页面Set Window Style function创建了函数
然后我写了这些行(Python在你的电脑上可能有不同的命名)
最后,我将其保存为脚本并粘贴到桌面上。
zwghvu4y3#
你没有写,你不想使用任何工具,所以这里有一个,可以解决你的问题。不需要安装,它是从一个值得信赖的分销商(Nirsoft),所以你应该试试。链接:http://www.nirsoft.net/utils/advanced_run.html
首先,您必须通过gui创建一个配置文件,然后您可以通过调用AdvancedRun. exe/run config.cfg启动该问题
希望对你有帮助!