Leerzeichen vor dem GUI-Titel

  • Hallo,
    ich habe da ein Problem mit den Leerzeichen vor einem GUI-Titel.
    Zum einfacheren Testen, habe ich mir ein kleines Script geschrieben.

    Das Problem ist, ab den Windows 11 Versionen vor etwa 23H2 wird der GUI-Titel mit den Leerzeichen davor angezeigt, aber ab etwa 23H2 werden die Leerzeichen nicht mehr angezeigt.
    Ersetze ich die Leerzeichen durch andere Zeichen, so werden diese Zeichen auch richtig angezeigt.
    Um auszuschließen das ich irgendetwas falsch eingestellt habe, habe ich mir mal einen USB-Stick mit Windows 11 (die neuste Version) erstellt und diese Version und AutoIt (auch ohne irgendetwas zu ändern) installiert.
    Auch damit werden keine Leerzeichen mehr angezeigt.
    Mit dem Befehl _StringRepeat(" ", 10) geht es auch nicht.

    Da hat wohl Microsoft irgendetwas geändert und damit GUICreate() negativ beeinflusst, da den Titel mit Leerzeichen versetzen jetzt auch nicht mehr geht.

    Nur wie kann man das wieder korrigieren?

    MfG:
    BigRox

    Einmal editiert, zuletzt von SOLVE-SMART (20. März 2024 um 18:32)

  • Hi BigRox ,

    ich kann es leider nicht testen, da ich kein Windows 11 nutze, doch was mich interessieren würde ist, ob der Titel auch nur bei einem führenden Leerzeichen ebenfalls getrimmt (abgeschnitten) wird oder erst ab dem Zweiten? Wieso möchtest du eigentlich mehrere Leerzeichen vor deinem eigentlichen Titel haben?

    -----------

    Alternative kannst du mal WinSetTitle() ausprobieren, ob sich das Verhalten irgendwie ändert oder genauso unerwartet bleibt.


    Viele Grüße
    Sven

  • Selbes Problem hier. W11 entfernt alle führenden Leerzeichen (egal wie viele).
    Getestet mit: Windows 11, 10.0.22631 Build 22631
    Dies scheint aber für alle "Whitespaces" zu gelten. Tabs werden auch entfernt.

  • Alternative kannst du mal WinSetTitle() ausprobieren, ob sich das Verhalten irgendwie ändert oder genauso unerwartet bleibt.

    Getestet. Ergebnis: Leider nein.

  • Danke dir water 👍 . Hmm, seltsam. Im Web ist dies schon Jahre so, daher gibt es   , doch warum nun auch bei Windows GUIs 🤔 .
    Ist MS auf Electron GUI bei Win11 gegangen oder so? I don't know.

    Bin gespannt ob jemand mit 'ner Begründung oder besser noch Lösung dazu um die Ecke kommen wird - wäre interessiert am "warum".
    Naja, ich drücke die Daumen BigRox .

    Die Frage warum du unbedingt N Leerzeichen vor deinen eigentlichen Titel setzen willst (musst) bleibt noch offen?

    Viele Grüße
    Sven

    Update:
    Es scheint als kommt dieses Verhalten mit "WinUI 3", was bei Win11 wohl default ist.
    Hier ein Einstiegspunkt dazu: https://learn.microsoft.com/de-de/windows/apps/winui/winui3/.
    Beim prüfen von Querverweisen bin ich zwar nicht direkt auf die whitespace Thematik gestoßen, doch zumindest darüber das hier stark an den UI Elementen gearbeite wurde, neue APIs genutzt werden usw. Daher meine Vermutung das es daran liegt und auch nicht manipuliert werden kann (zumindest nicht mit pur AutoIt).

  • Hat hier leider auch nicht funktioniert.

  • Wenn es rein um die Optik geht, würde ich dann einfach drauf verzichten oder du musst dir eine titlebar per GUI selber zusammen bauen.

    Oder setz halt einfach einen . davor :D

    Einmal editiert, zuletzt von Moombas (21. März 2024 um 12:46)

  • Moombas ,
    die Leerzeichen vor dem GUI-Titel, sind zwar nicht unbedingt nötig, aber es wäre schon interessant zu erfahren, warum es früher ging und heute nicht mehr.
    Und eine Lösung für dieses Problem wäre auch interessant.
    Ich vermute nämlich das dieses Problem auch an einer anderen Stelle auftreten könnte und dann hätte man auch direkt eine Lösung dafür.

    MfG:
    BigRox

  • Ich denke eher das das bisher ignoriert wurde (von Windows), es aber nachgebessert wurde und damit führende Leerzeichen entfernt werden (ich kann dies auch mit Lazarus erstellten Programmen nachstellen).
    In diesem Fall empfinde ich diese Änderung als durchaus sinnvoll (meine Meinung), da mich solche spielereien in der Regel eher stören.

  • Hallo,

    ich nutze oft die Metro_CreateGUI UDF.

    Hier macht man das ja einfach mit einem Label "GUICtrlCreateLabel"

    Beispiel, kann ja für die einfache GUI angepasst werden.

    die GUI sieht dann so aus.


    Gruß gmmg

  • Hallo BigRox,

    ich habe zwar kein Win11, aber vielleicht hilft dir ein Backspace (Alt+08) ganz am Anfang, also vor den Leerzeichen. Bei Win7 lassen sich ähnliche Probleme in Batchdateien jedenfalls so lösen, wenn man Text ohne Zeilenumbruch ausgeben will: set /p "#=[BS]  Text"<nul ([BS] = Alt+08).

    Ansonsten würde ich noch Unicode-Leerzeichen durchprobieren, vor allem die geschützten Leerzeichen, also diejenigen ohne Umbruch.

    Wenn all das auch nicht funktioniert, dann würde ich wie Moombas einen Punkt (.) oder einen Mittenpunkt (· Alt+0183) davor setzen.

    Gruß, fee