2010-10-20 16 views
0

J'ai une extension d'espace de nom et lorsque l'utilisateur effectue certaines actions, nous affichons une barre de progression dans une fenêtre séparée (idéalement, l'indicateur Windows barre d'adresse, mais on me dit qu'il n'y a pas d'API pour ça chez mon fournisseur de composants). J'utilise le Windows Code Pack 1.1 pour obtenir une API .NET.Utilisation de Windows 7 Indicateur de progression de la barre des tâches d'une extension d'espace de noms Windows Explorer

Cette fenêtre de progression est une fenêtre Windows Form régulière. J'ai inclus le code suivant:

... 
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); 
      } 
     } 
    } 
... 

Je voudrais que l'icône de l'explorateur affiche la progression, mais cela n'arrive pas. J'ai essayé d'ajouter la propriété Handle en tant que paramètre, mais cela ne semble pas aider.

Répondre

0

(Idéalement, nous devrions utiliser l'indicateur de progression Windows Explorer construit en dans la barre d'adresse, mais on me dit que il n'y a pas une API pour que de mon fournisseur de composants)

Si son extension namespace votre supposé utiliser l'interface IProgressDialog, son intégré dans l'explorateur et aussi nativité soutient l'indicateur de progression Taskbar sous Windows 7.

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

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

DMeX

+0

Merci pour le conseil. Savez-vous s'il est possible d'obtenir une indication de la barre d'adresse de l'explorateur Windows sur Win7? – tronda

0

Avez-vous défini l'état?

TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Error); 

Cela vous obtiendra un rouge. Mis en pause pour le jaune et Normal pour le vert.

+0

Oui - je ne l'initialisons lorsque le progrès commence à TaskbarProgressBarState.Normal. – tronda