.net - 在 Windows 任务栏中显示进度 (Powershell)
问题描述
我试图弄清楚如何在任务栏上显示进度。通过 PowerShell。
据我了解,我应该使用这样的东西:
$Progress = [System.Windows.Shell.TaskbarItemInfo]::New()
$Progress.ProgressState = 'Normal'
$Progress.ProgressValue = 0.3
但这不起作用。我究竟做错了什么?如何在任务栏上显示进度?谢谢
解决方案
对于那些正在寻找答案的人。事实证明,.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)
推荐阅读
- php - 刀片中的 Laravel 5.8 在 @php 指令中看不到来自 @foreach 的变量
- spring-boot - 如何使用 resttemplate 和 springboot 捕获自定义异常?
- linux - 我正在编辑我的 .bashrc 文件以备份历史记录,但它没有按预期工作
- c++ - gcc vs clang:静态转换时在未使用的模板专业化中解析了 noexcept
- mule4 - 有没有人在 Mule 4, Anypoint studio 7.3.2 中遇到过这个错误 - “执行脚手架时出错”
- java - 在单例对象中克隆某些东西
- c# - 不同的安装文件夹取决于“使用共享运行时”选项选择
- mongodb - 在mongodb中过滤大数组
- spring - 为什么我添加 apache poi 依赖项后 maven pom.xml 文件会显示错误?
- django - 现有电子邮件的查询在数据库中且不为空