Fensteroperationen

  • Hallo

    Wie kann man ein Fenster auf eine bestimmte grösse verkleinern oder vergrössern? Ich meine jetzt nicht maximieren, da weiss ich es wie das geht. Und wie kann man ein Fenster verschieben?

    3 Mal editiert, zuletzt von Helveticus (29. Mai 2010 um 21:17)

  • Um die größe ändern zu können habe ich was.

    Öffne einfach mal den Editor und drücke auf Scan !

    Dann einfach das Fenster auswählen , deine größe und Resize drücken (=

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $gui = GUICreate("Remover", 0x00F5, 0x0109, 0x01DD, 0x00FD, 0x10C60000, 8)
    $scan = GUICtrlCreateButton("Scan", 5, 5, 0x0051, 0x001F)
    $resize = GUICtrlCreateButton("Resize", 5, 0x00C5, 0x0051, 0x001F)
    $clientlist = GUICtrlCreateList("", 0x005F, 5, 0x008D, 0x00C2)
    $size = GUICtrlCreateCombo("100", 0x005F, 0x00CC, 0x008D, 0x0019)
    GUICtrlSetData(-1, "50|30|10")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $scan
    update()
    Case $resize
    $p = WinGetPos(getclient())
    WinMove(getclient(), "", @DesktopWidth / 2 - ((@DesktopWidth / 100) * GUICtrlRead($size)) / 2, @DesktopHeight / 2 - ((@DesktopHeight / 100) * GUICtrlRead($size)) / 2, (@DesktopWidth / 100) * GUICtrlRead($size), (@DesktopHeight / 100) * GUICtrlRead($size))

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

    EndSwitch
    WEnd
    Func update()
    GUICtrlSetData($clientlist, "")
    Local $list = WinList("[CLASS:Notepad]")
    For $i=1 To $list[0][0]
    GUICtrlSetData($clientlist, $i-1 & " - " & $list[$i][0], $i-1 & " - " & $list[$i][0])
    Next
    EndFunc

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

    Func getclient()
    Local $x = StringSplit(GUICtrlRead($clientlist), " - ")
    Local $list = WinList("[CLASS:Notepad]")
    Return $list[$x[1]+1][1]
    EndFunc

    [/autoit]
  • Ich danke euch.

    Ist folgendes eigentlich möglich?

    [autoit]

    WinWaitActive("Notepad OR Explorer", "", 30)

    [/autoit]

    Also das Skript soll warten bis eines der beiden Fenster Notepad oder Explorer offen ist. Oder kann man das anders machen?

  • So wie du das gemacht hast ist das glaub ich falsch, so müsste es aber gehen

    [autoit]


    If WinActive(bla) Or WinActive(nochmal bla) Then ;irgendwas

    [/autoit]

    Kannst du z.B. in eine While 1- Schleife setzen, und wenn ein Fenster aktiv ist, wird die Schleife verlassen.

  • Ich hab doch noch eine Frage. Und zwar wie kann man in einem Programm z.B. Notepad die Navigationsleiste benutzen? Also z.B. auf Format --> Zeilenumbruch klicken? Also mit MouseClick würde das sicher gehen, aber das geht doch sicher auch einfacher.

  • Ist Notepad offen?
    Dann hol die die Control ID, lese den Inhalt aus, füge zum Inhalt ein @LF hinzu und setze den Inhalt wieder ein (Mit ControlSetText/ControlGetText)
    Beispiel kommt gleich.

    (Alternativ geht es ja auch mit Send())
    Edit1:

    Ein kleines Beispiel
    [autoit]

    Local $sText = @LF
    Run("Notepad.exe")
    WinWaitActive("[CLASS:Notepad]")
    ControlSetText("[CLASS:Notepad]", "", "Edit1", ControlGetText("[CLASS:Notepad]", "", "Edit1") & $sText)

    [/autoit]