首页 > 解决方案 > 在 Windows 任务栏中显示进度 (Powershell)

问题描述

我试图弄清楚如何在任务栏上显示进度。通过 PowerShell。

在此处输入图像描述

据我了解,我应该使用这样的东西:

$Progress = [System.Windows.Shell.TaskbarItemInfo]::New()

$Progress.ProgressState = 'Normal'
$Progress.ProgressValue = 0.3

但这不起作用。我究竟做错了什么?如何在任务栏上显示进度?谢谢

标签: .netpowershell

解决方案


对于那些正在寻找答案的人。事实证明,.NET Framework 不支持在任务栏上显示进度。Windows 窗体也不支持这一点。它现在支持 WPF。

但是,有一个解决方案。该解决方案由 Ravikanth Chaganti 编写。https://www.ravichaganti.com/blog/programming-windows-7-taskbar-using-windows-api-code-pack-and-powershell/。为此,您需要下载并安装 WindowsAPICodePack 库(它适用于 Windows 7)。:

打开 PowerShell 并加载程序集

[Reflection.Assembly]::LoadFrom(“D:\API\Microsoft.WindowsAPICodePack.Shell.Dll”)

创建一个 TaskBarManager 实例

$TaskBarObject = [Microsoft.WindowsAPICodePack.TaskBar.TaskBarManager]::Instance

设置进度条状态

$TaskBarObject.SetProgressState(“Normal”)

这不是强制性的。但是,了解可能的值很重要。以下是每个进度条状态的含义:

No Progress – 不显示进度条 Indeterminate – 进度不确定(选取框) Normal – 显示正常进度 Error – 发生错误(红色) Paused – 操作暂停(黄色)

设置进度条值

$TaskBarObject.SetProgressValue(50,100)


推荐阅读