Minimieren eines selbst ausgewählten Fensters

  • Hallo, ich bin sehr neu hier und habe ein einfaches Problem.
    Ich möchte ein Fenster minimieren, dass ich selber bestimmen kann.

    Also wenn ich in die edit box: Notepad
    eingebe, dass es dann auch Notepad minimiert... doch bei mir passiert garnichts.

    Könnt ihr mir bitte sagen wo mein Fehler ist?
    Viele dank :)

    [autoit]

    #include
    #include
    #include
    #include
    $FORM1 = GUICreate("", 200, 70)
    $BUTTON1 = GUICtrlCreateButton("min", 5, 10, 80, 50, 0)
    $e1 = GUICTRLCREATEEDIT("",100,20,80,20,0)
    GUICTRLSETDATA($e1,"Client",1)
    GUISetState(@SW_SHOW)

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

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

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

    Func min()
    WinWait($e1)
    WinSetState($e1,"",@SW_MINIMIZE)
    EndFunc

    [/autoit]
  • 1. Ordentliche Formatierung deines Scrites bitte, das erhöht die leserlichkeit um einiges d.h. bei einer Schleife einrücken usw.

    2. Was soll 4 mal eine #include-Anweisung ohne Parameter? Das gibt zum einen keinen Sinn und zum andern führ es zu einem Fehler!

    3. Der Fenstername vom Notepad ist nicht Notepad sondern Standartmäsig "Unbenannt - Editor"

    4. Hast du dir schonmal $e1 mit einer MsgBox o.a. ausgeben lassen? Du bekommst nur ein Handle ausgegeben! Du musst GuiCtrlRead einsetzen umd das Edit-Feld auszulesen

    mfg. Jam00

  • Wie Jam00 bereits sagte musst du das Control auslesen. (Guictrlread)
    Und natürlich wird standardmäßig der Fenstertitel verwendet.
    Du könntest auch die Class verwenden (in dem Falle wäre es "notepad"), allerdings ist das von Programm zu Programm unterschiedlich.

    In deinem Beispiel benötigst du nur das eine Include.

    [autoit]


    #include <GUIConstantsEx.au3>

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

    $FORM1 = GUICreate("", 200, 70)
    $BUTTON1 = GUICtrlCreateButton("min", 5, 10, 80, 50)
    $e1 = GUICtrlCreateEdit("", 100, 20, 80, 20, 0)
    GUICtrlSetData($e1, "Client")
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $BUTTON1
    $sEdit = GUICtrlRead($e1)
    min($sEdit)
    EndSwitch
    WEnd

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

    Func min($sTitle)
    WinSetState($sTitle, "", @SW_MINIMIZE)
    EndFunc ;==>min

    [/autoit]


    Zitat

    1. Ordentliche Formatierung deines Scrites bitte, das erhöht die leserlichkeit um einiges d.h. bei einer Schleife einrücken usw.

    2. Was soll 4 mal eine #include-Anweisung ohne Parameter? Das gibt zum einen keinen Sinn und zum andern führ es zu einem Fehler!

    4. Hast du dir schonmal $e1 mit einer MsgBox o.a. ausgeben lassen? Du bekommst nur ein Handle ausgegeben! Du musst GuiCtrlRead einsetzen umd das Edit-Feld auszulesen


    1.
    Kann am Browser (oder dessen Einstellungen) liegen.

    2.
    Forumsbug

    4.
    Grundsätzlich richtig, aber es ist eine ID und kein Handle ;)

  • 1. Falls es nicht am Browser liegt sondern daran das du es nicht gemacht hast, ordentliche Formatierung deines Scrites bitte, das erhöht die leserlichkeit um einiges d.h. bei einer Schleife einrücken usw.

    2. Echt? Seit wann gibts den denn hatte ich nich nie?

    3. Der Fenstername vom Notepad ist nicht Notepad sondern Standartmäsig "Unbenannt - Editor"

    4. Hast du dir schonmal $e1 mit einer MsgBox o.a. ausgeben lassen? Du bekommst nur ein ID ausgegeben! Du musst GuiCtrlRead einsetzen umd das Edit-Feld auszulesen


    Ich habe absichtlich kein Script geschrieben damit er auch noch selber überlegen muss^^

    mfg. Jam00