[OpenSource][C#] Zwirbelbart.Taskbar [17.08.2013] - Taskbar Lib

    • Release

    Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Lukas.

      [OpenSource][C#] Zwirbelbart.Taskbar [17.08.2013] - Taskbar Lib

      Name des Programms:
      Zwirbelbart.Taskbar

      Beschreibung:
      Bibliothek um einige Eigenschaften der Taskbar zu lesen und zu verändern.

      Screenshot(s):


      Verwendete Programmiersprache und IDE:
      C# (IDE: VS 2012 Professional)

      Changelogs
      Spoiler anzeigen
      Update auf 1.0.1:
      • Eigenschaft "Rectangle" zu "Bounds" umbenannt
      • Eigenschaft "TaskbarButtonAppearance" zu "TaskbarItemAppearance" umbenannt
      • Enumeration "TaskbarButtonAppearance" zu "TaskbarItemAppearance" umbenannt
      • "UsePeekPreview"-Eigenschaft hinzugefügt
      • Rectangle wird nun durch .FromLTRB() erzeugt
      • Schlüsselnamen ausgelagert


      Update 1.0.2:
      • Einige Eigenschaften erneuern nun die Anzeige der Taskbar, sofern nötig
      • Bug in der "UseSeekPreview"-Eigenschaft behoben


      Systemanforderungen:
      .NET Framework 2.0
      Getestet unter Windows 7/8

      Download:
      Kompilierte Bibliothek im Anhang
      Quellcode auf github

      Lizenz/Weitergabe:
      Freeware
      BSD 3-Clause License
      Dateien
      „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

      -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.

      Dieser Beitrag wurde bereits 11 mal editiert, zuletzt von „Lukas“ ()

      Sieht gut aus und ist sicherlich mal eine Benutzung (sagt man das so :D) wert. Gute Arbeit!
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
      Dankeschön!
      „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

      -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
      Welche Property steht eigentlich dafür, dass die TaskBar fixiert ist? IsLocked?
      Und der Name ist ansonsten etwas ungewohnt, aber was sol'ls.
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Trade“ ()

      Wenn du damit meinst, dass die Taskbar nicht verschiebbar ist, dann meinst du IsLocked.
      „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

      -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
      Schaut sehr gut aus.
      Eventuell wäre es cool wenn du noch mehr Sachen einbauen könntest, z.B Änderung der Farbe (natürlich dann die Farbe des kompletten Windows Designs)
      PS: Nutz am besten Bilder mit transparentem Hintergrund (Ich mag die weißen Hintergründe auf grau nicht :P (Hab bei deinem Klassendiagramm mal den Hintergrund auf transparent gestellt, weiß nicht ob das beim Einbinden klappt))
      Bilder
      • f87d6fld.png

        15,35 kB, 444×315, 228 mal angesehen
      Änderung der Farbe würde mMn zu sehr unter Aero fallen, dafür war die Lib eigentlich nicht gedacht. Ursprünglich wollte ich nur mal die Sachen aus dem Optionsfenster umsetzen:


      Das Nächste, was ich umsetzen wollte, wäre die Sichtbarkeit der Uhr und der Systemicons wie Batterie oder Lautstärke. Geht über die Registry, aber der Dialog scheint da was anderes zu benutzen.

      Das mit dem Diagramm ist ne nette Idee, danke ;)
      „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

      -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
      Ich habe noch ein paar Verbesserungsvorschläge:
      • Die "Location"- und "Rectangle"-Propertys sind irgendwie redundant. Die Location ist doch auch im Rectangle enthalten, oder nicht?
      • "Rectangle" passt nicht so ganz - ich würde die Property "Bounds" nennnen
      • Folgendes:
        return new Rectangle(rect.Left, rect.Top, rect.Right, rect.Bottom);
        Ist semantisch nicht ganz korrekt.
        Für LTRB-Conversion sollte man es so machen:
        return Rectangle.FromLTRB(rect.Left, rect.Top, rect.Right, rect.Bottom);
      • Warum lagerst du den Pfad in der Registry in eine Konstante aus, aber die Wertenamen, Window Messages und Class Names nicht?
      • Wird die Library auch auf XP laufen?
      • Kann man prüfen, ob das derzeitige OS von der Library unterstützt wird?
      • Der Lizenztext enthält noch Platzhalter ("Neither the name of the {organization} nor the names of [...]")
      • TaskbarButton? Aus ein paar Debug-Symbolen von Windows weiß ich zufällig, dass MS Selbst die Bezeichnung "TaskBarItem" verwendet (genauer gesagt: Das ist ein Interface; ITaskBarItem, welches CTaskBarGroup und CTaskBarItem implementieren).
      Von meinem iPhone gesendet

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „nikeee13“ ()

      Hi,

      danke für deine üppige Rückmeldung.

      Also Location und Rectangle überschneiden sich im weiteren Sinne, aber beide machen schon Sinn. Location ist Top, Left etc, während Rectangle mir die Position auf dem Bildschirm gibt. Vor Allem Location ist sehr praktisch, denn ich habe bisher sehr viele Lösungen gesehen, wo man versucht hat, mit der Auflösung und der WorkingArea zu hantieren. Das ist ein riesiger Aufwand, fehleranfällig und nicht verlässlich. Ich könnte mir vorstellen, dass es bei Multi-Monitor schnell zu Problemen kommt.

      Bounds kann man es auch nennen, aber ich mache das ganze ja mit GetWindowRect, daher bot sich das an. Danke für den Tipp mit der Konvertierung.

      Ich brauche den Registrykey sehr oft, die Wertenamen idR nur zwei Mal. Da ist der Änderunsaufwand sehr überschaubar. Kann man mal machen.

      Keine Ahnung, ob die Registry-Werte und die API unter XP funktioniert. Dafür müsste ich erstmal ne XP VM machen. Ich befürchte, dass XP da ohnehin andere Optionen hat. Allerdings weiß ich nicht, ob es sich jetzt lohnt, das noch zu machen - ich möchte ungerne die Verschleppung von XP begünstigen.

      Ich hab nur Windows 8 da, für alles andere müsste ich ne VM machen. Wäre nett, wenn sich vielleicht ein paar Tester für 7/Vista fänden.

      Lizenz: Naja, was soll ich da als Person eintragen? Ich werde die Lizenz ohnehin nochmal ändern. Oder so.
      „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

      -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
      Danke, unter 7 habe ich auch eigentlich keine Probleme erwartet.

      Bezüglich der Symbolleisten: Mal gucken, ob und wie man da dran kommt.

      Edit: Update auf 1.0.1:
      • Eigenschaft "Rectangle" zu "Bounds" umbenannt
      • Eigenschaft "TaskbarButtonAppearance" zu "TaskbarItemAppearance" umbenannt
      • Enumeration "TaskbarButtonAppearance" zu "TaskbarItemAppearance" umbenannt
      • "UsePeekPreview"-Eigenschaft hinzugefügt
      • Rectangle wird nun durch .FromLTRB() erzeugt
      • Schlüsselnamen ausgelagert


      Update 1.0.2:
      • Einige Eigenschaften erneuern nun die Anzeige der Taskbar, sofern nötig
      • Bug in der "UseSeekPreview"-Eigenschaft behoben
      „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

      -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Lukas“ ()

      Hallo,

      vielleicht könnte deine Library ein lästiges Windows Problem beseitigen?

      Unter Windows 8 (wird aber auch in früheren Versionen berichtet) kann die Taskbar einfrieren. Dann stimmen die Icons und die Uhrzeit nicht mehr. Als Abhilfe kann man z.B. die Taskbar location oder Größe verändern.

      Bis jetzt dachte ich daß die location per Befehl nur über registry Änderung und explorer Neustart zu ändern ist.
      Bekommt deine Library das einfacher hin?

      Ich habe keine Erfahrung mit VB oder Library Aufrufen. Kannst Du ein paar Bespiele dazutun?

      Danke!

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „keks“ ()

      @keks: Danke für dein Interesse.

      Der Quellcode der Lib liegt auf github. Ich denke einerseits deswegen und weil die Lib verhätlnismäßig klein ist, ist kein Beispielprojekt von Nöten. Sobald du die Referenz und den Import gesetzt hast, kannst du praktisch loslegen. Die Klasse heist Taskbar. IntelliSense hilft dir sicher, sie zu finden.

      mfg
      Lukas
      „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

      -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.