C#: Unter Windows 7 Fortschrittsanzeige in der Taskleiste

  • Unter VB gehts so, vielleicht kannst du was draus interpretieren:

    Code
    Imports Microsoft.WindowsAPICodePack.Taskbar 'Taskbar-Features importieren
    Dim TBM As TaskbarManager = TaskbarManager.Instance 'Einen TaskbarManager definieren
    
    
    
    
    Private Sub Bla()
         TBM.SetProgressValue(Aktueller Prozesswert, Maximaler Prozesswert) 'Prozess anzeigen
         TBM.SetProgressState(Status) 'State aus Enum auswählen
    End Sub
    • Offizieller Beitrag

    C#-Code

    Code
    using Microsoft.WindowsAPICodePack.Taskbar;
    
    
    
    
    TaskbarManager TBM = TaskbarManager.Instance;
    TBM.SetProgressValue(progressBar1.Value, progressBar1.Maximum);
    TBM.SetProgressState(TaskbarProgressBarState.Normal);


    Danke, das funktioniert. Wenn ich das Programm unter Windows XP starte, kommt eine Fehlermeldung, dass der Code nur unter Windows 7 oder neuer funktioniert. Hast du noch etwas eingebaut, dass die Windowsversion festgestellt wird und dann entsprechend den Code ausführen oder nicht.

    • Offizieller Beitrag

    Schau dir mal IsPlatformSupported an ;)


    Mir war erst nicht bewusst, dass "IsPlatformSupported" zu "TaskbarManager" gehört. Die komplette Lösung wäre wie folgt:

    Code
    if (TaskbarManager.IsPlatformSupported)
    {
      	TaskbarManager TBM = TaskbarManager.Instance;
      	TBM.SetProgressValue(progressBar1.Value, progressBar1.Maximum);
      	TBM.SetProgressState(TaskbarProgressBarState.Normal);
    }

    Danke Funnysunny