1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Oscar

Beiträge von Oscar

  • Anfängerfragen zur GUI(Checkbox,Inputbox und welches Gui Konzept)

    • Oscar
    • 11. April 2009 um 04:12

    Fangen wir mal mit den Zeilen 42...50 an. Die müssen so lauten:

    [autoit]

    GUICtrlSetState ($checkbox_window1, $GUI_CHECKED) ; ohne Anführungsstriche

    [/autoit]

    Die Zeilen 52...60 komplett löschen.

    Die Funktion "PushKey" folgendermassen ändern:

    [autoit]


    Func PushKey()
    If BitAND(GUICtrlRead($checkbox_window1), $GUI_CHECKED) Then
    Send("1") ; Funktion_Taste 1
    Sleep(GUICtrlRead($input_window_delay1)) ; Funktion_Delay_1
    EndIf
    If BitAND(GUICtrlRead($checkbox_window2), $GUI_CHECKED) Then
    Send("2") ; Funktion_Taste 2
    Sleep(GUICtrlRead($input_window_delay2)) ; Funktion_Delay_2
    EndIf
    ; [...]
    EndFunc

    [/autoit]

    Achja, und ganz am Anfang:

    [autoit]

    #include <GUIConstantsEx.au3>

    [/autoit]
  • Fensterposition und Größe - Wo wirds gespeichert - wie wirds gemacht ?

    • Oscar
    • 10. April 2009 um 19:09

    WinGetState gibt den Status für das Fenster zurück:

    [autoit]

    $state = BitAND(WinGetState($GUI), 32)

    [/autoit]
  • Variable

    • Oscar
    • 10. April 2009 um 13:58

    Die Variable behält den Inhalt, solange wie das Script läuft. Es sei denn, Du rufst diese Zeile in Deinem Script ein weiteres Mal auf.
    Wenn Du das vorhast, dann solltest Du den vorherigen Inhalt vorher in einer anderen Variablen speichern:

    [autoit]


    $var_zeit = @MDAY & "-" & @MON & "-" & @YEAR & "_" & @HOUR & "-" & @MIN & "\"
    ; [...]
    $old = $var_zeit
    $var_zeit = @MDAY & "-" & @MON & "-" & @YEAR & "_" & @HOUR & "-" & @MIN & "\"

    [/autoit]

    Edit: Mist, zu langsam, heute... ;)

  • Zeiten abziehen

    • Oscar
    • 10. April 2009 um 13:09

    Am einfachsten mit _DateAdd und einer negativen Zahl für die Sekunden:

    [autoit]


    #include <Date.au3>
    MsgBox(0, 0, _DateAdd('s', -18000, '2009/04/10 02:00:00')) ; 18000 sek. = 5 Stunden

    [/autoit]
  • Anfängerfragen zur GUI(Checkbox,Inputbox und welches Gui Konzept)

    • Oscar
    • 10. April 2009 um 09:58

    Ja, der Trick hierbei ist, dass Opt die vorherige Einstellung zurückgibt.

    Zitat

    Returns the value of the previous setting for the option.

    Mit dem Befehl schaltet man also auf den MessageLoopMode um und in $iEventMode wird der vorherige Zustand gespeichert.
    Am Ende der Funktion schaltet man dann einfach wieder zurück.

  • Anfängerfragen zur GUI(Checkbox,Inputbox und welches Gui Konzept)

    • Oscar
    • 10. April 2009 um 09:28

    Ich hab mal schnell ein Beispiel gebastelt:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include<WindowsConstants.au3>
    Opt('GUIOnEventMode', 1)

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

    $hMainGui = GUICreate('Test')
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
    GUICtrlCreateButton('Klick mich', 10, 10, 120, 25)
    GUICtrlSetOnEvent(-1, '_Test')
    GUISetState()

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

    While 1
    Sleep(20)
    WEnd

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

    Func _End()
    Exit
    EndFunc

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

    Func _Test()
    $sText = 'Mieterbund rechnet mit hohen Nachzahlungen' & @CRLF & 'Mietern drohen nach Angaben des Deutschen Mieterbundes im Frühjahr 2009 saftige Heizkosten-Nachzahlungen von durchschnittlich 30 Prozent. "2008 war das Jahr der explodierenden Energiepreise", sagte Mieterbund-Präsident Franz-Georg Rips der Nachrichtenagentur dpa. Heizöl sei im Durchschnitt um etwa 30 Prozent und Gas etwa um 20 Prozent teurer geworden als im Vorjahr. "Die Zeche werden die Mieter 2009 zahlen müssen, wenn sie ihre Heizkostenabrechnung erhalten."' & @CRLF & @CRLF & '40 Prozent des Einkommens für Miete' & @CRLF & 'Rips zufolge sei für eine 80 Quadratmeter große Wohnung mit insgesamt 1200 bis 1300 Euro an Heizkosten zu rechnen. Auch insgesamt steige der Anteil am Nettoeinkommen, den Mieter für ihre Wohnung aufbringen müssen, weil die Kaltmieten wie auch andere Nebenkosten, etwa kommunale Gebühren, Müll und Abwasser, anzögen. Im Jahr 2009 würde der Anteil dieser Wohnkosten am Nettoeinkommen auf durchschnittlich 40 Prozent klettern, schätzt Rips. "Für einkommensschwächere Haushalte bedeutet die Preisentwicklung, dass sie mehr als 50 Prozent ihres Nettoeinkommens für Wohnung und Haushaltsenergie zahlen müssen."' & @CRLF & @CRLF & 'Mangel an Mietwohnungen?' & @CRLF & 'Zugleich warnt der Mieterbund vor einem zunehmenden Mangel an Mietwohnungen. Auch im vergangenen Jahr wurde wieder weniger neuer Wohnraum gebaut. Im neuen Jahr würden nach Schätzungen des Mieterbunds weniger als 200.000 Wohnungen fertig gestellt. "Davon entfallen ganze 50.000 auf Mietwohnungen, der Rest ist Eigentum", sagte Rips.' & @CRLF
    _StringDisplay($sText, 'Beispiel mit Zeilenumbruch am Editrand', $WS_VSCROLL) ; Zeilenumbruch am Editrand
    EndFunc

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

    ;===============================================================================
    ; Function Name..: _StringDisplay($sText[, $sTitle] [, $sEditStyle] [, $iWidth] [, $iHeight] [, $iLeft] [, $iTop])
    ; Description....: Zeigt einen beliebigen Text in einem Editfeld an
    ; Parameter(s)...: $sText = der anzuzeigende Text
    ; $sTitle = Fenstertitel (optional)
    ; $sEditStyle = Edit-Style (optional)
    ; $iWidth = Breite des Fensters (optional, Standard = 400 Pixel)
    ; $iHeight = Höhe des Fensters (optional, Standard = 300 Pixel)
    ; $iLeft = Abstand von links (optional, Standard = zentriert)
    ; $iTop = Abstand von oben (optional, Standard = zentriert)
    ; Return Value...: Der markierte Text wird als String zurückgegeben
    ; Author.........: Oscar (http://www.autoit.de)
    ;===============================================================================
    Func _StringDisplay($sText, $sTitle = 'StringDisplay', $sEditStyle = -1, $iWidth = 400, $iHeight = 300, $iLeft = -1, $iTop = -1)
    If Not IsDeclared('BS_DEFPUSHBUTTON') Then Local Const $BS_DEFPUSHBUTTON = 0x00000001
    If Not IsDeclared('GUI_EVENT_CLOSE') Then Local Const $GUI_EVENT_CLOSE = 0xFFFFFFFD
    If Not IsDeclared('WS_EX_COMPOSITED') Then Local Const $WS_EX_COMPOSITED = 0x02000000
    If Not IsDeclared('WS_MAXIMIZEBOX') Then Local Const $WS_MAXIMIZEBOX = 0x00010000
    If Not IsDeclared('WS_MINIMIZEBOX') Then Local Const $WS_MINIMIZEBOX = 0x00020000
    If Not IsDeclared('WS_SIZEBOX') Then Local Const $WS_SIZEBOX = 0x00040000
    Local $iEventMode = Opt('GUIOnEventMode', 0)
    Local $hGui = GUICreate($sTitle, $iWidth, $iHeight, $iLeft, $iTop, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX), $WS_EX_COMPOSITED)
    Local $hEdit = GUICtrlCreateEdit($sText, 5, 5, $iWidth - 10, $iHeight - 65, $sEditStyle)
    GUICtrlSetResizing(-1, 2 + 4 + 32 + 64)
    Local $hClose = GUICtrlCreateButton('Close', $iWidth / 2 - 25, $iHeight - 55, 50, 22, $BS_DEFPUSHBUTTON)
    GUICtrlSetResizing(-1, 64 + 256 + 512)
    ControlFocus($hGui, '', $hClose)
    GUISetState(@SW_SHOW, $hGui)
    While True
    Switch GUIGetMsg()
    Case $hClose, $GUI_EVENT_CLOSE
    ExitLoop
    EndSwitch
    WEnd
    ControlFocus($hGui, '', $hEdit)
    Local $sSelectedText = ControlCommand($hGui, '', $hEdit, 'GetSelected', '')
    If @error Then $sSelectedText = ''
    GUIDelete($hGui)
    Opt('GUIOnEventMode', $iEventMode)
    Return $sSelectedText
    EndFunc ;==>_StringDisplay

    [/autoit]

    Innerhalb der Funktion _StringDisplay() wird der MessageLoop- und außerhalb der OnEvent-Mode benutzt.

  • Anfängerfragen zur GUI(Checkbox,Inputbox und welches Gui Konzept)

    • Oscar
    • 10. April 2009 um 09:17
    Zitat von AutoBert

    Mann kann die beiden Stile auch mischen, habs mal in einem Post von Oscar (Mod) gesehen

    Nein, mischen kann/darf man die Modi nicht. Man kann aber zwischen den Modi umschalten (z.B. innerhalb einer Funktion den OnEvent-Mode ausschalten und dann eine MessageLoop-Schleife benutzen).

  • Schleifen-Problem

    • Oscar
    • 7. April 2009 um 19:00

    Du könntest die Abarbeitungs-Reihenfolge ändern (vom höchsten Wert hin zum Niedrigsten):

    [autoit]


    $a = 2
    If $a >= 2 Then MsgBox(0,0,'2')
    If $a >= 1 Then MsgBox(0,0,'1')

    [/autoit]


    oder Du benutzt den Binärcode:

    [autoit]


    $a = 9 ; 8+1
    If BitAND($a, 1) Then MsgBox(0,0,'1')
    If BitAND($a, 2) Then MsgBox(0,0,'2')
    If BitAND($a, 4) Then MsgBox(0,0,'4')
    If BitAND($a, 8) Then MsgBox(0,0,'8')

    [/autoit]
  • Schleifen-Problem

    • Oscar
    • 7. April 2009 um 18:50

    Oh, stimmt! ContinueCase prüft gar nicht die weiteren Case-Bedingungen. Hmmm...ist das nun ein Bug?
    Da musst Du wohl doch If...Then...ElseIf...usw. nehmen. :S

  • Botproblem verringern - Idee

    • Oscar
    • 7. April 2009 um 18:23

    Das mit der Automatisierung war auch nicht ernst gemeint. Es gibt ja auch die ein bis zwei Prozent ;) , die mit PixelSearch und PixelGetColor etwas anderes (kein Bot) machen wollen.

  • Schleifen-Problem

    • Oscar
    • 7. April 2009 um 18:17

    Die Frage ist: Was möchtest Du erreichen?
    Bei Deinem Beispiel wird die erste Case-Anweisung ausgeführt, weil die Bedingung bereits erfüllt ist.
    Wenn Du möchtest, dass zusätzlich auch die 2. Case-Anweisung geprüft wird, musst Du am Ende der Anweisungen vom ersten Case ein ContinueCase einfügen.

  • @IPAddress1 Probleme

    • Oscar
    • 7. April 2009 um 17:40

    Ich vermute mal, Du möchtest wissen, welches der vier Makros Deine Netzwerkkarte ist?
    Das geht so:

    [autoit]


    Global $sIP
    For $i = 1 To 4
    $sIP = Execute('@IPAddress' & $i)
    If $sIP <> '0.0.0.0' Then ExitLoop
    Next
    MsgBox(0,0,$sIP)

    [/autoit]
  • Schleifen-Problem

    • Oscar
    • 7. April 2009 um 17:23

    Vom Prinzip her würde ich lieber Switch nehmen:

    [autoit]


    While True
    Switch $var
    Case 1
    ; Anweisungen
    Case 2
    ; Anweisungen
    Case 3
    ; Anweisungen
    ; etc.
    EndSwitch
    WEnd

    [/autoit]

    Genaueres können wir aber nur sagen, wenn Du mal postest, was Du eigentlich vor hast.

  • Botproblem verringern - Idee

    • Oscar
    • 7. April 2009 um 17:07

    Andy: Die Geschichte ist geil! :rofl:

    Das Wahre an der Geschichte ist aber, dass die Bot-Kiddies alles abnicken, nur um hier ihre Bot-Fragen posten zu können.
    Von daher wird uns wohl nichts anderes übrigbleiben, als immer und immer wieder die Botfragen in die Quarantäne-Station zu verschieben.

    Es sei denn, wir einigen uns darauf, dass ein (AutoIt-)Script alle Fragen mit PixelSearch und PixelGetColor sofort automatisch löscht. Könnte man vielleicht noch um die Kombination: HotkeySet, While...Send...WEnd erweitern... ;)

  • Netzwerk Vista - Fritzbox - XP einrichten?

    • Oscar
    • 7. April 2009 um 16:49

    Das ist kein Problem! Die FritzBox ist doch ein Router. Das heißt lokales Netz funktioniert auch zwischen dem WLAN und dem LAN.
    Geschwindigkeit reduziert sich dann zwar auf die WLAN-Geschwindigkeit, aber ansonsten funktioniert das (habe ich hier bei mir auch so laufen).

  • TCP Port der Fritz Box abhören?

    • Oscar
    • 5. April 2009 um 22:49

    Ich hatte heute die Möglichkeit, das Script von pino (Post #13) an einer "FritzBox 7270" auszuprobieren und muss leider sagen, dass es dort nicht funktioniert (kein Connect, beendet sich sofort wieder).
    Hier bei mir mit einer 7170 funktioniert es einwandfrei. Jemand 'ne Idee, waran das evtl. liegen kann? Falscher Port? Oder wurde dort etwas grundlegend geändert?

  • Makros in kette funktionieren nicht?

    • Oscar
    • 4. April 2009 um 04:24

    Dieses Thema wurde doch bereits besprochen: [ offen ] Uhrzeit abgleich

  • TCP Port der Fritz Box abhören?

    • Oscar
    • 4. April 2009 um 04:11

    TCPRecv sollte dann einen Fehler liefern. Musst Du nach der Zeile mit

    [autoit]

    If @error Then ...

    [/autoit]


    abfragen.

  • Schon wieder Vier Gewinnt

    • Oscar
    • 3. April 2009 um 19:21

    Schön gemacht, progandy! :thumbup:
    Rot/Gelb gefällt mir am besten.

    Vielleicht noch ein Zufallswert (wer anfängt) einfügen.

  • TCP Port der Fritz Box abhören?

    • Oscar
    • 3. April 2009 um 19:07

    Ich würde sagen, nach einem Standby ist die Verbindung weg. Musst Du neu connecten.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™