Использование индикатора прогресса панели задач Windows 7 из расширения пространства имен Windows Explorer - PullRequest
0 голосов
/ 20 октября 2010

У меня есть расширение пространства имен, и когда пользователь выполняет определенное действие, мы отображаем индикатор выполнения в отдельном окне (в идеале мы должны использовать встроенный индикатор прогресса Windows Explorer в адресной строке, но мне сказали, чтоAPI для этого от моего поставщика компонентов).Я использую Windows Code Pack 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);
            }
        }
    }
...

Я бы хотел, чтобы значок проводника отображал ход выполнения, но этого не происходит.Я пытался добавить свойство Handle в качестве параметра, но это, похоже, не помогает.

Ответы [ 2 ]

0 голосов
/ 23 октября 2010

(В идеале мы должны использовать встроенный индикатор прогресса Windows Explorer в адресной строке, но мне сказали, что для этого нет поставщика API от моего компонента)

Если это расширение пространства имен, вы должны использовать интерфейс IProgressDialog, встроенный в Проводник и также поддерживает индикатор выполнения панели задач в Windows 7.

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

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

dmex

0 голосов
/ 20 октября 2010

Вы установили состояние?

TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Error);

Это даст тебе красную. Приостановлено для желтого и Нормальное для зеленого.

...