• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >PowerShell > PowerShell隐藏不显示窗口的多种方法

PowerShell隐藏不显示窗口的多种方法

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了powershell窗口,powershell,windows powershell,powershell是什么,powershell下载等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

启动PowerShell时隐藏自己的窗口

假如我在计划任务中定时通过Powershell.exe来执行一个脚本文件,我想隐藏这个窗口,此时我们可以考虑使用PowerShell.exe的选项参数:
-WindowStyle
 将窗口样式设置为 Normal、Minimized、Maximized 或 Hidden。
</div>

PowerShell.exe -WindowStyle Hidden -file '您的脚本.ps1'
</div>

在PowerShell启动其它进程时隐藏窗口

这个需求也能理解:

Start-Process notepad.exe -WindowStyle Hidden
</div>

上面的脚本会启动一个隐藏的记事本程序。

使用PowerShell隐藏其它进程的窗口

这是一个奇葩的需求,但是用户也有一番自己的理由:

@scl95tx如是说:

我已经实现了一个24小时不间断的Powershell脚本,有很多数据通过write-host命令输出到控制台(需要随时查看这些数据,确保server运行正常,所以后台运行我先不考虑),如果(由于操作失误)误点击控制台窗口,那么脚本就会停止执行,是否有办法把控制台隐藏起来,如果我想查看脚本的运行情况,再把控制台调出来:也就是有随时隐藏和调出来控制台的办法吗?

这需求合情合理啊,接下来我们解决这个问题:

Add-Type @'
[DllImport("user32.dll")]
public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
'@ -name “Win32ShowWindowAsync” -namespace Win32API
Function Set-ProcessWindowStyle
{
    param(
     [Parameter(
     Mandatory=$true,
     ValueFromPipeline=$true)]
    [System.Diagnostics.Process]$Process,
    [ValidateSet("Show", "Minimized","Maximized","Hidden")]
    [string]$WindowStyle="Show"
    )
        $WinStateInt = 1
       switch($WindowState)
       {
        "Hidden"       {$WinStateInt =  0}
        "Show"     {$WinStateInt =  1}
        "Maximize"   {$WinStateInt =  3}
        "Minimize"   {$WinStateInt =  6}
        }
    [Win32API.Win32ShowWindowAsync]::ShowWindowAsync($Process.MainWindowHandle,$WindowState)
}
</div>

写完上面的脚本后,我满心喜悦地进行测试,隐藏窗口成功:
Get-Process notepad | Set-ProcessWindowStyle -WindowStyle Hidden
</div>
可是当我尝试调出隐藏的窗口时,执行返回false。
PS> Get-Process notepad | Set-ProcessWindowStyle -WindowStyle Show
False
</div>
对此我深表遗憾,当窗口被隐藏后,进程的句柄值MainWindowHandle变成了0,0代表什么?

MSDN如是说:如果关联进程没有主窗口,则 MainWindowHandle 值为零。
结论:不要隐藏进程的窗口,否则你将永远失去了操作该窗口的机会。

</div>

您可能想查找下面的文章:

  • PowerShell隐藏不显示窗口的多种方法
  • PowerShell中调用WPF生成炫酷窗口实例

相关文章

  • Powershell小技巧之使用Copy-Item添加程序到开机启动
  • PowerShell小技巧之使用Verb打开程序
  • Windows Powershell 执行外部命令
  • PowerShell复制命令行历史命令方法
  • 详解Linux使用shell+expect远程登录主机
  • PowerShell Out-File指定文件编码的方法
  • Windows Powershell创建对象
  • Windows Powershell方法(对象能做什么)
  • Powershell小技巧之找出最大最小值
  • Tornado中database模块被取消的替代方法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • 探索PowerShell(十二) 筛选器 Filters
    • PowerShell中Get-Date对象的常用属性和方法介绍
    • 浅谈CMD和win powershell的区别
    • 探索PowerShell (三) PowerShell下使用Aliases
    • Windows 8 中的 PowerShell 3.0
    • PowerShell生成随机密码的方法
    • PowerShell小技巧之获取Windows系统密码Hash
    • Windows Powershell调用静态方法
    • Powershell小技巧之找出最大最小值
    • PowerShell中终止管道的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有