Hilfe bei Tray

  • Hallo,

    ich will mir eine Gui basteln, die auf verschiedene Fenster reagiert.
    Eine Func im Tray soll überwachen, welches Fenster gerade aktiv ist und dazu eine Gui öffnen.
    Beispiel wenn ich Notepas öffne und es aktiv ist, soll ne Gui eingeblendet werden, mit der ich durch Buttons Teytbausteine ins Notepad schreiben kann. Dasselbde will ich mir für Excel und Word machen. Wie ich String einfügen, kann ich.

    Ich habe mit zu Anfang eine Funktion geschrieben um das mal zu testen.
    Wenn ich Notpad öffne und Wingetsate anwende, dann erscheint meine Gui. Allerdings wenn ich das Fenster wechsle soll sie solange verschwinden bis notepad wieder aktiv ist. Und das klappt nicht..

    Hat wer von euch ne Ahnung wie ich das machen muss..

    Spoiler anzeigen

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    do
    $1=WinGetState("[CLASS:Notepad]")

    if $1=39 then gui() ; wenn Notpad sichtbar und maximiert ist
    until $1=0

    func gui()
    $Form1 = GUICreate("Form1", 591, 36, 208, 641,$WS_POPUP)
    GUISetBkColor(0xFFFFFF)
    $Button1 = GUICtrlCreateButton("Textbaustein 1", 8, 0, 91, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Textbaustein 2", 104, 0, 91, 25, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("Textbaustein 3", 200, 0, 91, 25, $WS_GROUP)
    $Button4 = GUICtrlCreateButton("Textbaustein 4", 296, 0, 91, 25, $WS_GROUP)
    $Button5 = GUICtrlCreateButton("Textbaustein 5", 392, 0, 91, 25, $WS_GROUP)
    $Button6 = GUICtrlCreateButton("Textbaustein 6", 488, 0, 91, 25, $WS_GROUP)
    DO
    GUISetState(@SW_SHOW)
    WinSetOnTop("Form1","",1)
    until $1= not 39
    GUISetState(@SW_Hide)
    WinSetOnTop("Form1","",0)

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    EndSwitch
    WEnd
    EndFunc

  • Hab zwar nicht ganz verstanden was du willst, aber vielleicht meinst du es ja so:

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $Form1 = GUICreate("Form1", 591, 36, 208, 641, $WS_POPUP)
    GUISetBkColor(0xFFFFFF)
    $Button1 = GUICtrlCreateButton("Textbaustein 1", 8, 0, 91, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Textbaustein 2", 104, 0, 91, 25, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("Textbaustein 3", 200, 0, 91, 25, $WS_GROUP)
    $Button4 = GUICtrlCreateButton("Textbaustein 4", 296, 0, 91, 25, $WS_GROUP)
    $Button5 = GUICtrlCreateButton("Textbaustein 5", 392, 0, 91, 25, $WS_GROUP)
    $Button6 = GUICtrlCreateButton("Textbaustein 6", 488, 0, 91, 25, $WS_GROUP)
    GUISetState(@SW_HIDE)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit]

    $state = WinGetState("[CLASS:Notepad]", "")

    [/autoit] [autoit][/autoit] [autoit]

    If BitAnd($state,8) Then
    GUISetState(@SW_SHOW, $Form1)
    WinActivate("[CLASS:Notepad]")
    Else
    GUISetState(@SW_HIDE, $Form1)
    EndIf
    WEnd

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Danke funkniert fast.

    Aber ich will das die Gui im Vordergund ist, mit Winsetontop klappt das nicht.
    Die Gui soll später bei Notepad wie eine Art Toolleiste einsetzbar sein.