代码之家  ›  专栏  ›  技术社区  ›  tronda Bahribayli

使用Windows资源管理器命名空间扩展中的Windows 7任务栏进度指示器

  •  0
  • tronda Bahribayli  · 技术社区  · 15 年前

    我有一个命名空间扩展,当用户执行某些操作时,我们会在单独的窗口中显示一个进度条(理想情况下,我们应该在地址栏中使用Windows资源管理器内置的进度指示器,但我被告知没有来自组件供应商的API)。我使用Windows代码包1.1来获取.NET API。

    此进度窗口是常规的Windows窗体窗口。我包含了以下代码:

    ...
    using System.Windows.Forms;
    using Microsoft.WindowsAPICodePack.Taskbar;
    ...
    public sealed partial class ProgressWindow : Form, IProgressPresenter
    {
        ...
        public int ProgressLevel
        {
            get { return JobProgress.Value; }
            set
            {
                JobProgress.Value = value;
    
                if (TaskbarManager.IsPlatformSupported)
                {
                    TaskbarManager.Instance.SetProgressValue(value, 99);
                }
            }
        }
    ...
    

    我希望资源管理器图标显示进度,但这不会发生。我试着加上 把手 属性作为参数,但这似乎没有帮助。

    2 回复  |  直到 15 年前
        1
  •  0
  •   dmex    15 年前

    (理想情况下,我们应该使用窗户 在地址栏里,但我听说 组件供应商)

    如果它是一个名称空间扩展,那么您应该使用IProgressDialog界面,它内置在资源管理器中,而且nativity也支持Windows 7上的任务栏进度指示器。

    http://www.codeproject.com/KB/dotnet/winprogressdialog.aspx

    http://www.codeproject.com/KB/shell/iprogressdialognet.aspx

    dmex公司

        2
  •  0
  •   Kate Gregory    15 年前

    TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Error);
    

    那会给你一个红色的。黄色暂停,绿色正常。

    推荐文章