首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PowerShell WindowStyle -Hidden在Windows 10上工作,但不使用Windows 7

PowerShell WindowStyle -Hidden在Windows 10上工作,但不使用Windows 7
EN

Stack Overflow用户
提问于 2017-02-16 05:43:59
回答 1查看 2K关注 0票数 2

我正在制作一个使用启动进程cmdlet的应用程序。

启动-进程与-WindowStyle隐藏(或最小化和其他)没有影响这个特定的应用程序链接,码头QuickStart终端在Windows 7。我使用码头工具箱,而不是码头为Windows。

代码语言:javascript
运行
复制
Start-Process -WindowStyle Hidden -FilePath "$env:appdata\Microsoft\Windows\Start Menu\Programs\Docker\Docker Quickstart Terminal.lnk"

它启动应用程序时没有问题,但它没有隐藏应用程序,不像在Windows 10上那样。我很困惑,因为正常的快捷链接(Chrome和Internet )和其他应用程序在这两个平台上正常启动和隐藏/最小化。唯一的问题是这个特定的快捷链接。

我不确定这是否是与PowerShell版本相关的问题,Windows7上的2.0版本和Windows10上的5.0版本。

有没有人经历过类似的问题?如能提供任何帮助,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-16 07:21:03

Docker快捷方式启动bash.exe,启动另一个启动另一个bash.exe的bash.exe。

Bash是在Windows 10中内置的,但不是在以前的Windows版本中,所以我想这就是原因所在。

让我们解析快捷方式文件并手动启动它的目标:

代码语言:javascript
运行
复制
function runProgramShortcutHidden($relativePath) {
    $programsMenu = [Environment]::GetFolderPath([Environment+SpecialFolder]::Programs)
    $fullPath = Join-Path $programsMenu $relativePath

    $linkDir = (New-Object -com Shell.Application).NameSpace((Split-Path $fullPath))
    $link = $linkDir.ParseName((Split-Path -leaf $fullPath)).GetLink

    $psi = New-Object Diagnostics.ProcessStartInfo
    $psi.FileName = $link.Path
    $psi.Arguments = $link.Arguments
    $psi.WorkingDirectory = $link.WorkingDirectory
    $psi.WindowStyle = [Diagnostics.ProcessWindowStyle]::Hidden

    [Diagnostics.Process]::Start($psi) >$null
}

用法:

代码语言:javascript
运行
复制
runProgramShortcutHidden 'Docker\Docker Quickstart Terminal.lnk'

备注:

  • 支持快捷方式目标路径中的Unicode,因为代码使用ShellLink接口;
  • System.Diagnostics.Process类用于按原样传递参数字符串。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42265901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档