在 Windows 任务栏中显示进度 (Powershell)

Кир*_*пин 5 .net powershell

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

在此输入图像描述

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

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

$Progress.ProgressState = 'Normal'
$Progress.ProgressValue = 0.3
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。我究竟做错了什么?如何在任务栏上显示进度?感谢您

Кир*_*пин 7

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

\n\n

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

\n\n

打开 PowerShell 并加载程序集

\n\n

[Reflection.Assembly]::LoadFrom(\xe2\x80\x9cD:\\API\\Microsoft.WindowsAPICodePack.Shell.Dll\xe2\x80\x9d)

\n\n

创建一个TaskBarManager实例

\n\n

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

\n\n

设置进度条状态

\n\n

$TaskBarObject.SetProgressState(\xe2\x80\x9cNormal\xe2\x80\x9d)

\n\n

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

\n\n

无进度 \xe2\x80\x93 不显示进度条\n不确定 \xe2\x80\x93 进度不确定(选取框)\n正常 \xe2\x80\x93 显示正常进度\n错误 \xe2\x80\x93 错误发生(红色)\n已暂停 \xe2\x80\x93 操作已暂停(黄色)

\n\n

设置进度条值

\n\n

$TaskBarObject.SetProgressValue(50,100)

\n