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. Kilroy

Beiträge von Kilroy

  • Arduino steuern per AutoIt-GUI

    • Kilroy
    • 30. Oktober 2014 um 17:54

    Wie in dem Sketch schon erklärt, sendet AutoIt nur bei verschieben des Reglers z.B "R" "125" (es wird geprüft ob der Wert des Reglers ungleich dem Label ist). Alles was du an den Arduino Port sendest wird erstmal gelagert (serial receive buffer). Geprüft ob etwas vorhanden ist wird durch serial.available(). Mit serial.read() wird das aktuellste Byte gelesen. Da der Arduino durch den ersten Wert "R" schon im Case ist wird das nächste aktuelle Byte also "125" welches ja sofort danach kommt gelesen.

    So verstehe ich das, also so ist es für mich logisch und nachvollziehbar.

    Nachtrag:
    Das ganze geht so auch mit dem Seriellen Monitor. Sendest du dem Arduino dadurch z.B. R dann wird er in den Case R gehen und solange warten bis etwas gesendet wird. Sendest du also 5min später erst die 125, wird er im Case R in der while weiter gehen und die 125 verwerten.

  • Arduino steuern per AutoIt-GUI

    • Kilroy
    • 28. Oktober 2014 um 20:17

    Ich habe keine private Nachricht erhalten? Wenn du Fragen hast, stelle sie doch in diesem Thema, es gibt vielleicht noch andere Menschen die genau die selben Fragen hätten.

  • Arduino steuern per AutoIt-GUI

    • Kilroy
    • 19. Oktober 2014 um 19:39

    Ich hab vor geraumer Zeit dasselbe gemacht.
    Verwendet habe ich die CommMG.au3
    AutoIt Code:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    #include <StaticConstants.au3>
    #include <CommMG.au3>
    _Connect()

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

    #region ### START Koda GUI section ### Form=
    GUICreate("Arduino & AutoIT", 270, 167, -1, -1) ; GUI
    GUICtrlCreateLabel("Rot", 8, 12, 21, 12) ; Label
    GUICtrlCreateLabel("Grün", 8, 62, 27, 12) ; Label
    GUICtrlCreateLabel("Blau", 8, 112, 25, 17) ; Label
    $InRed = GUICtrlCreateLabel("0", 35, 12, 40, 12) ; Label
    $InGreen = GUICtrlCreateLabel("0", 35, 62, 40, 12) ; Label
    $InBlue = GUICtrlCreateLabel("0", 35, 112, 40, 12) ; Label
    $slRed = GUICtrlCreateSlider(8, 32, 250, 20) ; Slider
    GUICtrlSetLimit(-1, 255, 0)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $slGreen = GUICtrlCreateSlider(8, 82, 250, 20); Slider
    GUICtrlSetLimit(-1, 255, 0)
    GUICtrlSetBkColor(-1, 0x00FF00)
    $slBlue = GUICtrlCreateSlider(8, 132, 250, 20); Slider
    GUICtrlSetLimit(-1, 255, 0)
    GUICtrlSetBkColor(-1, 0x0000FF)
    GUISetState(@SW_SHOW) ; GUI SHOW
    #endregion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _reset()
    Exit
    EndSwitch
    InRedChange()
    InGreenChange()
    InBlueChange()
    WEnd
    Func InRedChange()
    $tmp2 = GUICtrlRead($InRed)
    If GUICtrlRead($slRed) <> ($tmp2) Then
    GUICtrlSetData($InRed, GUICtrlRead($slRed))
    _CommSendByte(Asc("R"))
    _CommSendByte(GUICtrlRead($slRed))
    EndIf
    EndFunc ;==>InRedChange
    Func InGreenChange()
    $tmp1 = GUICtrlRead($InGreen)
    If GUICtrlRead($slGreen) <> ($tmp1) Then
    GUICtrlSetData($InGreen, GUICtrlRead($slGreen))
    _CommSendByte(Asc("G"))
    _CommSendByte(GUICtrlRead($slGreen))
    EndIf
    EndFunc ;==>InGreenChange
    Func InBlueChange()
    $tmp = GUICtrlRead($InBlue)
    If GUICtrlRead($slBlue) <> ($tmp) Then
    GUICtrlSetData($InBlue, GUICtrlRead($slBlue))
    _CommSendByte(Asc("B"))
    _CommSendByte(GUICtrlRead($slBlue))
    EndIf
    EndFunc ;==>InBlueChange
    Func _Connect()
    _CommSetDllPath("C:\Program Files (x86)\AutoIt3\Include\commg.dll")
    $ports = _CommListPorts(0)

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

    $list = ""
    For $x = 1 To UBound($ports) - 1
    $list &= $ports[$x] & @CRLF
    Next
    $input = InputBox("Port wählen", "Verfügbare Ports:" & @CRLF & $list)
    If $input == "" Then
    Exit
    EndIf
    Local $Error
    _CommSetPort($input, $Error, 9600, 8, "none", 2, 1)
    If @error Then
    MsgBox(0, "", "Keine Verbindung zu Port " & $input & " möglich.")
    Exit
    EndIf
    EndFunc ;==>_Connect
    Func _reset()
    _CommSendByte(Asc("R"))
    _CommSendByte(0)
    _CommSendByte(Asc("G"))
    _CommSendByte(0)
    _CommSendByte(Asc("B"))
    _CommSendByte(0)
    EndFunc ;==>_reset

    [/autoit]

    Bild:
    [Blockierte Grafik: http://i.epvpimg.com/BuANd.png]

    Alles weitere wie Arduino-Sketch und das AutoIt-Script als .au3 sowie ein Fritzingaufbauplan ist im Anhang zu finden.

  • 2 Diminsonale Array Einträge verschieben

    • Kilroy
    • 13. Dezember 2013 um 13:51

    Ich hab so was ähnliches als Passwort Saver gemacht, vielleicht helfen dir diese Schnipsel einwenig weiter.

    Löschen

    [autoit]

    Func _Delete()
    If GUICtrlRead(GUICtrlRead($ListView1)) = "" Then
    MsgBox(16, "Meldung!", "Keine Zelle ausgewählt.")
    Else
    $Lst = GUICtrlRead(GUICtrlRead($ListView1))
    $Lst_Result = StringSplit($Lst, "|")
    Global $Section = $Lst_Result[1]
    IniDelete(@ScriptDir & "\Save.ini", "Save", $Section)
    _AkList()
    EndIf
    EndFunc ;==>_Delete

    [/autoit]

    Aktuallisieren von der ListView

    [autoit]

    Func _AkList()
    _GUICtrlListView_DeleteAllItems($ListView1)
    $List = IniReadSection(@ScriptDir & "\Save.ini", "Save")
    For $i = 1 To UBound($List) - 1
    GUICtrlCreateListViewItem($List[$i][0] & "|" & $List[$i][1], $ListView1)
    Next
    EndFunc ;==>_AkList

    [/autoit]
  • Name, ID und PW in eine .ini speichern und in ListView zeigen(aktuallisiert)

    • Kilroy
    • 27. September 2013 um 18:31

    danke i2c, das mit der Lagerung einer Funktion hat mich auf eine total banale Idee gebracht, dazu fiel mir auch noch ein das ich vor einigen Wochen mit StringSplit gearbeitet hab und mit ein bisschen ausprobieren hab ichs dann hinbekommen.

    Ergebnis:

    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>

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

    #region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Saver", 561, 328, -1, -1)
    $Input1 = GUICtrlCreateInput("", 16, 28, 153, 21)
    $Input2 = GUICtrlCreateInput("", 16, 68, 153, 21)
    $Input3 = GUICtrlCreateInput("", 16, 108, 153, 21)
    $Button1 = GUICtrlCreateButton("Save", 56, 136, 49, 25)
    $Button2 = GUICtrlCreateButton("Delete", 112, 136, 49, 25)
    GUICtrlCreateLabel("Wo? ID und Passwort:", 200, 8, 111, 15)
    GUICtrlCreateLabel("Wo?*", 16, 12, 27, 15)
    GUICtrlCreateLabel("ID:*", 19, 52, 18, 15)
    GUICtrlCreateLabel("Passwort:*", 18, 92, 50, 15)
    $ListView1 = GUICtrlCreateListView("Wo?|ID|PW", 200, 24, 353, 297, BitOR($GUI_SS_DEFAULT_LISTVIEW, $WS_HSCROLL, $WS_VSCROLL))
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 100)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 100)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 125)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    If FileExists(@ScriptDir & "\Save.ini") Then
    _List()
    EndIf

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    If GUICtrlRead($Input1) = "" Or GUICtrlRead($Input2) = "" Or GUICtrlRead($Input3) = "" Then
    MsgBox(64, "Meldung!", "Füllen Sie bitte alle *Pflichtfelder aus.")
    Else
    IniWrite(@ScriptDir & "\Save.ini", "Save", GUICtrlRead($Input1), GUICtrlRead($Input2) & "| " & GUICtrlRead($Input3))
    _List()
    EndIf
    Case $Button2
    _Delete()
    EndSwitch
    WEnd

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

    Func _List()
    _GUICtrlListView_DeleteAllItems($ListView1)
    $List = IniReadSection(@ScriptDir & "\Save.ini", "Save")
    For $i = 1 To UBound($List) - 1
    GUICtrlCreateListViewItem($List[$i][0] & "|" & $List[$i][1], $ListView1)
    Next
    EndFunc ;==>_List

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

    Func _Delete()
    If GUICtrlRead(GUICtrlRead($ListView1)) = "" Then
    MsgBox(16, "Meldung!", "Keine Zelle ausgewählt.")
    Else
    $Lst = GUICtrlRead(GUICtrlRead($ListView1))
    $Lst_Result = StringSplit($Lst, "|")
    Global $Section = $Lst_Result[1]
    IniDelete(@ScriptDir & "\Save.ini", "Save", $Section)
    _List()
    EndIf
    EndFunc ;==>_Delete

    [/autoit]

    Präfix [gelöst]

  • Name, ID und PW in eine .ini speichern und in ListView zeigen(aktuallisiert)

    • Kilroy
    • 27. September 2013 um 15:37

    Hey,

    mich regt es ständig auf, dass ich meine Passwörter und manchmal sogar meine ID vergesse.. z.B. das von AutoIt.de

    Ich versuche deshalb nen Tool zu schreiben das den Namen z.B. AutoIt.de, die ID und das Passwort in eine Ini speichert
    und falls mal ein neuer Account dazu kommt, der dort mit reingeschrieben wird. Damit ich nicht die ganze Zeit die ini öffnen muss um zu sehen welche Daten zu welchem Account gehören wollte ich in dem Programm noch ein Listview machen wo der Name, ID und PW angezeigt werden, außerdem ne lösch funktion falls etwas falsch geschrieben wurde(das ausgewählte item löschen).
    Inhalt der .ini
    [Save]
    AutoIt=ID;PW
    Youtube=ID;PW

    Inhalt der Listview
    AutoIt | ID;PW
    Youtube | ID;PW

    Ich hab schon nen bisschen rumprobiert ein paar Codes im Internet gefunden. Das Tool macht unendlich viele ListViewItems..

    Script:

    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>

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

    #region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Save", 414, 205, 467, 313)
    $Input1 = GUICtrlCreateInput("", 16, 28, 153, 21)
    $Input2 = GUICtrlCreateInput("", 16, 68, 153, 21)
    $Input3 = GUICtrlCreateInput("", 16, 108, 153, 21)
    $Button1 = GUICtrlCreateButton("Save", 56, 136, 49, 25)
    $Button2 = GUICtrlCreateButton("Delete", 112, 136, 49, 25)
    GUICtrlCreateLabel("Wo? ID und Passwort:", 200, 8, 111, 15)
    GUICtrlCreateLabel("Wo?*", 16, 12, 27, 15)
    GUICtrlCreateLabel("ID:*", 19, 52, 18, 15)
    GUICtrlCreateLabel("Passwort:*", 18, 92, 50, 15)
    $ListView1 = GUICtrlCreateListView("Wo?|ID;PW", 200, 24, 201, 169, BitOR($GUI_SS_DEFAULT_LISTVIEW, $WS_HSCROLL, $WS_VSCROLL))
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    If GUICtrlRead($Input1) = "" Or GUICtrlRead($Input2) = "" Or GUICtrlRead($Input3) = "" Then
    MsgBox(64, "Meldung 01", "Füllen Sie bitte alle *Pflichtfelder aus.")
    Else
    IniWrite(@ScriptDir & "\Save.ini", "Save", GUICtrlRead($Input1), GUICtrlRead($Input2) & ";" & GUICtrlRead($Input3))
    EndIf
    Case $Button2
    ;Delete ausgewähltes Listitem aus .ini
    EndSwitch
    ;Aktuallierung
    If FileExists(@ScriptDir & "\Save.ini") Then
    If GUICtrlRead($ListView1) <> IniReadSection(@ScriptDir & "\Save.ini", "Save") Then
    $List = IniReadSection(@ScriptDir & "\Save.ini", "Save")
    For $i = 1 To UBound($List) - 1
    GUICtrlCreateListViewItem($List[$i][0] & "|" & $List[$i][1], $ListView1)
    Next
    EndIf
    EndIf
    WEnd

    [/autoit]

    $Vielleicht weiß einer ja auch ne bessere Lösung..

  • Ornderinhalt lässt sich nicht löschen DirRemove

    • Kilroy
    • 26. August 2013 um 20:25

    Hallo..
    ich wollte eigendlich nen simples Ordner kopier und lösch Script machen aber dabei stoß ich schon an meine Grenzen :S

    Es soll so ablaufen:
    Ordner "DropBox" wird in den Ordner "Dropbox_New" kopiert
    Nach bestimmer Zeit z.B. 10sec soll der Inhalt von "Dropbox_New" gelöscht werden, der kopierte "Dropbox" Ordner in dem "Dropbox_New" Ordner ist gemeint.
    Dann soll der echte "Dropbox" Ordner wieder in den "Dropbox_New kopiert werden.
    Dann endlosschleife.

    Hier mein Scriptversuch, er kopiert alles aber er löscht den Dropbox Ordner im Dropbox_new ordner nicht..

    [autoit]

    #include <DirRename.au3>
    #include <File.au3>
    #include <Misc.au3>

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

    $Quelle = "C:\Dropbox"
    $Ziel = "C:\Dropbox_New"
    While 1
    DirRemove($Ziel & "\Dropbox")
    DirCopy($Quelle, $Ziel & "\Dropbox")
    Sleep(10000)
    WEnd

    [/autoit]
  • Mit Snap ein Fenster auswählen

    • Kilroy
    • 7. Juli 2013 um 13:11

    Ja funktioniert echt super :D

    ~Thema auf gelöst.

  • Mit Snap ein Fenster auswählen

    • Kilroy
    • 7. Juli 2013 um 12:57

    erstmal danke James, ich hab nen bisschen rumprobiert aber irgendwie bekommt er nur bei einigen den Titel
    und das auch auf so komische Art, manchmal sofort und manchmal nachdem minimieren O.o

    [autoit]

    $window = WinGetHandle("[X:" & $pos[0] & ";Y:" & $pos[1] & "]")
    $s = WinGetTitle($window)
    MsgBox(0, "Title", $s)

    [/autoit]
  • Mit Snap ein Fenster auswählen

    • Kilroy
    • 7. Juli 2013 um 11:51

    Ich bin neu in diesem Forum und daher weiß ich nicht nach was ich suchen hätte müssen um meine Frage zuklären
    "Mit Snap ein Fenster auswählen" hat bei google nicht das gewünschte gesucht.

    Ich möchte ein Tool schreiben das Fenster, dessen Name in einer Inputbox geschrieben ist, schließt. Damit das nen bisschen einfacher ist wollte ich mit einer Snap Funktion ein Fenster auswählen nachdem auswählen soll der Name in der Inputbox angzeigt werden und durch einen Button kann das fenster dann geschlossen werden. Zum testen hatte ich eine MsgBox eingefügt..
    Hoffe es ist verständlich Ausgedrückt.

    [autoit]

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

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

    $GUI1 = GUICreate("GUI1", 200, 150, 100, 200)
    $button1 = GUICtrlCreateButton('Snap Window', 60, 50, 80, 30)
    GUISetState(@SW_SHOW)

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

    $aCursor = GUICreate("", 48, 48, -1, -1, $WS_POPUP, $WS_EX_TOPMOST)
    WinSetTrans($aCursor, "", 10)
    GUISetCursor(3, 1, $aCursor)
    GUISetState(@SW_HIDE)

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

    Global $Msg
    While 1
    $Msg = GUIGetMsg()
    Switch $Msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $button1
    GUISetState(@SW_HIDE, $GUI1)
    GUISetState(@SW_SHOW, $aCursor)
    Local $pos
    Do
    $pos = MouseGetPos()
    WinMove($aCursor, "", $pos[0] - 24, $pos[1] - 24)
    Sleep(10)
    Until _IsPressed("01")
    GUISetState(@SW_HIDE, $aCursor)
    $window = WinGetTitle($pos[0], $pos[1])
    MsgBox(0, "Title", $window)
    GUISetState(@SW_SHOW, $GUI1)
    WinActivate($GUI1)

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

    EndSwitch
    WEnd

    [/autoit]

    Der $cursor teil ist von der HEX_COLOR_List hier im Forum.

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™