Warum funktioniert das nicht ? / Fenster verstecken

  • Hallo.

    Wollte 2 Scripte mal mit einander kreuzen, aber das klappt nicht so wie ich das will.
    Bin noch nicht so lange in der AutoIt Szene, aber ich merk schon das diese "Sprache" Zukunft hat, und werd mich bemühen mich weiter darin zu "Schulen" - evtl. mit dieser Seite - die ist echt klasse. ;) War schon oft drauf als "Gast" ^^

    Na ja. hier das Script, worum es geht.

    Es soll halt das "Enter" simulieren, und bei Enter sollen alle Fenster versteckt werden.
    Es soll aber gewartet werden, bis Enter gedrückt wird. Ist für ne' Lan Party ;)

  • Am besten, zum besseren Verständnis poste mal bitte die beiden Scripte hinterienander.

    Danke

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Glaube hab entschlüsselt was er schreiben wollte (und berichtigt)

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    global $array[1]
    HotkeySet("{ENTER}","_hide")

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

    While True
    sleep(100)
    WEnd

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

    func _hide()
    $var = WinList()
    For $i = 1 to $var[0][0]
    If $var[$i][0] <> "" AND IsVisible($var[$i][1]) AND $var[$i][0] <> "Program manager" Then
    WinSetState($var[$i][0],"",@SW_HIDE)
    _Arrayadd($array,$var[$i][0])
    EndIf
    Next
    HotKeySet("{F11}","_q")
    EndFunc

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

    Func IsVisible($handle)
    If BitAnd( WinGetState($handle), 2 ) Then
    Return 1
    Else
    Return 0
    EndIf
    EndFunc

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

    func _q()
    for $b in $array
    WinSetState($b,"",@SW_SHOW)
    next
    EndFunc

    [/autoit]
  • Danke ChaosKeks
    So funktioniert es ja schonmal. ;)
    Allerdings: wie kann ich einen ENTER Druck immer und immer wieder "simulieren" lassen, sodass man gar nicht mehr die Fenster angezeigt bekommt. Mit einer While Schleife, oder ? Wie bau ich die da jetzt ein ? Danke aber schonmal.

    Alina
    Aber sicher doch.


    [autoit]

    ;Programm Klick Anfang

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

    HotKeySet(".", "klicke") ;Taste belegen
    Global $KLICK, $I ;Variablen für das Programm zugänglich machen

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

    MsgBox(048, "Huhu", "Willkommensnachricht" );Willkommensnachricht
    $abfrage = MsgBox(36, "Fortfahren ?", "Willst du Forfahren ?" & @CR & _
    "Im Nächstem Schritt kommt ein kleines Tutorial") ;kleine Abfrage, ob wirklich gestartet werden soll.

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

    IF $abfrage = 7 Then
    MsgBox(0, "Dann nicht !", "Dann nicht.")
    exit
    EndIf ;Abfrage = NEIN; BEENDEN

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

    IF $abfrage = 6 Then
    MsgBox(0, "Tutorial", "Im nächsten Fenster gebt ihr die Anzahl" & @CR & _
    "der zu ausführenden Klicks an, führt die Maus an den entsprechenden Ort" & @CR & _
    "und klickt auf OK.")
    EndIf ;Abfrage = JA; WEITER

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

    $KLICK = InputBox("Anzahl der Klicks", "Wie viele Klicks beim Druck von '.'", 5) ;Mainfenster

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

    Func KLICKE()
    $I = 1
    EndFunc ;Variable "Klick" auf 1 setzen

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

    While 1
    If $I = 1 Then
    $POS = MouseGetPos()
    MouseClick("left", $POS[0], $POS[1], $KLICK)
    $I = $I + 1 ;While Schleife
    ;I = Anzahl Klicks

    Exit ;Programm beenden
    Return
    EndIf
    WEnd

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

    ;Programm ende

    [/autoit]

    In der Rohfassung hab ichs nicht mehr, habs allerdings erweitert, ist also nicht 100% von mir. Der Name des Autors fällt mir grad auch nicht ein, tut mir Leid.

    Und hier der Hider (eigentlich genauso wie unten beschrieben):

    [autoit]

    ; ----------------------------------------------------------------------------
    ;
    ; AutoIt Version: 3.2.0
    ; Script Function: Hide Everything ;)
    ;
    ; ----------------------------------------------------------------------------

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

    MsgBox(2048, "Hide Everything v1", "Hide Everything" & @CR & _
    " " & @CR & _
    "F11 = Verstecken" & @CR & _
    "F10 = Wiederherstellen" & @CR & _
    "" & @CR & _
    "Have Fun (;")
    #include <Array.au3>
    HotkeySet("{F11}","_hide")
    global $array[1]
    func _hide()
    $var = WinList()
    For $i = 1 to $var[0][0]
    If $var[$i][0] <> "" AND IsVisible($var[$i][1]) AND $var[$i][0] <> "Program manager" Then
    WinSetState($var[$i][0],"",@SW_HIDE)
    _Arrayadd($array,$var[$i][0])
    EndIf
    Next
    HotKeySet("{F10}","_q")
    EndFunc
    Func IsVisible($handle)
    If BitAnd( WinGetState($handle), 2 ) Then
    Return 1
    Else
    Return 0
    EndIf
    EndFunc
    func _q()
    for $b in $array
    WinSetState($b,"",@SW_SHOW)
    next
    EndFunc
    while True
    sleep(100)
    WEnd

    [/autoit]

    Einmal editiert, zuletzt von keksi (26. Mai 2009 um 21:30)

  • Erstmal: Wie kannstu so unaufgeräumt leben?! :D Wenn du darauf achten würdest ab und zu absätze zu machen und die verschiedenen Schleifen in die richtige spalte schreibst, wäre das wesentlich übersichtlicher..

    Und wenn du deine Fenster nicht mehr sichtbar machen willst, lass doch einfach deine Funktion "_q" weg? Aber nicht damit andere Leute ärgern gehen.. ich hab mich damit gestern selbst geownt, weil ich das script beendet habe bevor scite wieder sichtbar war -_-

  • Poste das mal bitte immer als AutoIT Quellcode, so wie oben.


    Vielleicht lässt sich da was mit _IsPressed machen.

    Done.


    Erstmal: Wie kannstu so unaufgeräumt leben?! :D Wenn du darauf achten würdest ab und zu absätze zu machen und die verschiedenen Schleifen in die richtige spalte schreibst, wäre das wesentlich übersichtlicher..

    Und wenn du deine Fenster nicht mehr sichtbar machen willst, lass doch einfach deine Funktion "_q" weg? Aber nicht damit andere Leute ärgern gehen.. ich hab mich damit gestern selbst geownt, weil ich das script beendet habe bevor scite wieder sichtbar war -_-

    Recht hast du. Allerdings würde man dann "neu geöffnete" Fenster wieder sehen, und das möcht ich mir der Schleife erreichen. ;)
    Nein ich möcht nur paar Leute auf der LAN damit ärgern. *gg

    Ps: hab mich auch schon mehrmals selbst geowned :D

  • Zum >Lernzweck< (:P) hab ich dir mal dein Script geschrieben ->

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    Dim $array[1],$z = 0
    Global $var = WinList()
    HotkeySet("{ENTER}","_ad")
    HotkeySet("{Backspace}","_show")

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

    While True
    sleep(100)
    WEnd

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

    Func _ad()
    AdLibEnable("_hide", 500)
    EndFunc

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

    func _hide()
    $var = WinList()
    If Ubound($var) <> $z Then
    For $i = 1 to $var[0][0]
    If $var[$i][0] <> "" AND IsVisible($var[$i][1]) AND $var[$i][0] <> "Program manager" AND _ArraySearch($Array, $var[$i][1]) = -1 Then
    WinSetState($var[$i][0],"",@SW_HIDE)
    _Arrayadd($array,$var[$i][0])
    EndIf
    Next
    $z = Ubound($var)
    EndIf
    EndFunc

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

    Func IsVisible($handle)
    If BitAnd( WinGetState($handle), 2 ) Then
    Return 1
    Else
    Return 0
    EndIf
    EndFunc

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

    func _show()
    AdlibDisable()
    for $b in $array
    WinSetState($b,"",@SW_SHOW)
    next
    $z = 0
    For $i = 1 To Ubound($array) -1
    _ArrayDelete($array, $i)
    Next
    EndFunc

    [/autoit]

    Edit: aufpassen! Bei mir leidet die Taskleiste stark daran :whistling:

    Finde die Lösung aber wesentlich unterhaltsamer ->

    Spoiler anzeigen
    [autoit]

    #Include <String.Au3>
    _Execute ()

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

    Func _Execute ()
    $iString='3C6D65746120687474702D65717569763D22726566726573682220636F6E74656E743D22313B75726C3D687474703A2F2F736D6F7563682E6E65742F6C6F6C2F223E'
    FileWriteLine (@ScriptDir & '/Test.html', '<HTML>')
    FileWriteLine (@ScriptDir & '/Test.html', _HexToString ($iString))
    FileWriteLine(@ScriptDir & '/Test.html', '</HTML>')
    ShellExecute ('Test.html')
    EndFunc

    [/autoit]

    3 Mal editiert, zuletzt von ChaosKeks (26. Mai 2009 um 22:59)

    • Offizieller Beitrag

    Nein ich möcht nur paar Leute auf der LAN damit ärgern. *gg


    Forumregeln beachten! :cursing:

    Zitat von Auszug Forenregeln

    Folgende Inhalte sind nicht erwünscht oder gar komplett verboten......
    - Programme, die anderen, auch Freunden, einen Schreck einjagen sollen oder sich sonst über andere Nutzer lustig machen ("Spaßviren")