InputBox() nach vorne bringen

  • Ich habe das Problem, dass sich manchmal ein Fenster vor eine InputBox schiebt. Im Gegensatz zu MsgBox() mit $MB_SETFOREGROUND oder $MB_TOPMOST habe ich keine Parameter dazu gefunden. Wenn es die nicht gibt, Alternative zu InputBox() ?

    Das Gleiche passiert auch bei _ArrayDisplay() - auch da suche ich eine Lösung. Und zusätzlich noch dazu einen OK und CANCEL - Button.

    :)

  • Hallo HansJ54,

    du hast recht: Die InputBox hat keinen Parameter, um sie immer im Vordergrund anzuzeigen.

    Wie man das ganze dennoch realisieren kann, ist hier ganz gut beschrieben: https://www.autoitscript.com/forum/topic/13…n-top-inputbox/

    (Übrigens erstes Google-Ergebnis zu "autoit inputbox foreground".)

    Wenn man einen der Vorschläge von guinness noch in eine hübsche Funktion auslagert, kann sowas dabei rauskommen:

    Die Verwendung der Funktion _InputBoxOnTop() sollte damit genau so sein wie bei der normalen InputBox. Das zeigen auch die ersten Zeilen im Codebeispiel.

    Viele Grüße

    Xenon

  • Wenn man einen der Vorschläge von guinness noch in eine hübsche Funktion auslagert, kann sowas dabei rauskommen:

    Gefällt mir ganz gut, würde dir jedoch empfehlen den Titel des autoitinternen Fensters vorher noch mit der ProcessID zu versehen, damit nicht aus Versehen die GUI eines anderes AutoIt-Skripts angezapft wird.

  • alpines Das ist ein guter Hinweis!

    Natürlich könnte man dann stattdessen auch gleich eine eigene temporäre GUI nehmen, dann hat das ganze gar keine Seiteneffekte:

    Allerdings könnte man spätestens dann auch überlegen, ob man nicht in die ohnehin erstellte GUI einfach noch ein Inputfeld einfügt, und den Aufruf von InputBox komplett weglässt. ;)

  • Ich habe hier mal zur Inspiration ein paar Zeilen geschrieben, mit denen einer InputBox und _ArrayDisplay/_DebugArrayDisplay das TopMost-Attribut verpasst werden kann.

    Und zusätzlich noch dazu einen OK und CANCEL - Button.

    Du meinst für _ArrayDisplay? dann schau dir mal _DebugArrayDisplay an...