Höhe der Taskleiste ermitteln

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von eichseinet.

    Höhe der Taskleiste ermitteln

    Hallo zusammen!

    Mein WPF-Projekt soll die Höhe der Taskleite ermitteln.
    Ich hatte gelesen, dass man die Höhe mit der WorkArea und dem VirtualScreen erhält. Leider passt das nicht. Mir ist bekannt, dass die Werte nicht in Pixeln, sondern in der Einheit 1/96" ist.
    Taskleiste_Hoehe = SystemParameters.PrimaryScreenHeight - SystemParameters.MaximizedPrimaryScreenHeight 'ergibt 864 -838,4 = 25,6
    Dim uu As Double = SystemParameters.WorkArea.Height 'ergibt 824
    Dim vs As Double = SystemParameters.VirtualScreenHeight 'ergibt 864
    Dim fh As Double = Application.Current.MainWindow.Height 'ergibt 838,4

    Die Höhe müsste auf diesem PC bei ca. 45 liegen. Wie ihr seht erhält man in der 1. Zeile aber nur 25,6. Die Differenz der beiden anderen Werte ergibt auch nur 40.
    Ich verstehe nicht, wie ein maximiertes Fenster (normales Fenster, mit Rahmen!) den Wert 838,4 haben kann, wenn die Taskleiste ca. 45 hoch ist; wären ja zus. 883,4. (volle Monitorhöhe ist ja nur 864)
    Es soll ein rahmenloses Fenster erstellt werden, bei dem unten ein Control mit der Höhe der Taskleiste erscheint, um deren genaue Höhe zu erkennen. Das Fenster selbst wird bei "Maximized" und "Style = None" (also ohne Rahmen) automatisch über die Taskleiste gelegt.

    Wäre schöne, wenn man den richtigen Wert ermitteln kann. Ansonsten nehm ich einfach die 45 und hoffe, dass es auch bei Monitoren mit anderer Auflösung passt.

    Gruß
    eddi
    Du kannst mit UIAutomation die Taskleiste auslesen. Versuch's mal mit meinem GuiSpy.
    Bilder
    • GuiSpyTaskBar.png

      21,55 kB, 792×599, 36 mal angesehen
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Das sieht nicht ganz einfach aus. :) Werde mich damit mal in Ruhe bschäftigen.
    Inzwischen sitze ich zuhause am PC. (vorher am Laptop) Habe hier die DPI-Skalierung von 125% mal auf 100% gestellt. (dann entsprechen die Werte auch den Pixeln am Monitor) Dann wurden die Werte mal mit dauerhaft eingeblendeter Taskleiste und mal mit ausgeblendeter ermittelt. Im letzten Fall ist es sehr interessant, dass eine Fensterhöhe von 1456 angezeigt wird. Der Monitor hat nur 1440 Pixel in der Höhe (WQHD mit 2550x1440 Pixeln halt) Diser Wert wird auch korrekt von der "PrimaryScreenHeight" angezeigt.
    Mit solchen Werten kann man natürlich nicht weiter kommen.
    Werde mir dein Programm genauer ansehen und auch selbst noch etwas testen.

    Danke und Gruß
    eddi