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

Beiträge von hexpirator

  • mit AutoIt über COM-Port LED-Würfel ansteuern. Geht das ?

    • hexpirator
    • 3. Januar 2012 um 08:29

    Hi Leute.

    Ich möchte über den COM-Port einen µ Controller mit Daten füttern in welcher Reihenfolge LED´s im Würfel, den ich gebaut habe, aufleuchten sollen.
    Gibt es eine UDF, mit der man auf den COM-Port zugreifen kann?

    Hat da jemand bereits Erfahrung?

    Gruß.

  • Progressbar %-Fortschritt-Anzeige im GUI-Titel

    • hexpirator
    • 21. Dezember 2011 um 16:04

    Mein jetziger Code.


    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1_1 = GUICreate("Prozessbar", 224, 103, 252, 188)
    $Progress1 = GUICtrlCreateProgress(32, 33, 150, 12)
    $B_LOS = GUICtrlCreateButton("LOS", 72, 64, 75, 25, $WS_GROUP)
    $Label1 = GUICtrlCreateLabel("0%", 8, 72, 36, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1 ; Endlosschleife
    $nMsg = GUIGetMsg() ; Abfrage, ob sich in der GUI etwas ändert
    Switch $nMsg ; Vergleich mit den nachfolgenden Case-Befehlen
    Case $GUI_EVENT_CLOSE ; wird ausgeführt, wenn der Anwender den X-Button klickt
    Exit ; Ende
    Case $B_LOS ; wird ausgeführt, wenn der Anwender den LOS-Button klickt
    _LOS () ; zur Funktion LOS springen
    EndSwitch
    WEnd

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

    Func _LOS () ; Start der Funktion "_LOS ()"
    For $i = 0 To 100 Step 1 ; für $i = 0 bis 100 in einserschritten
    GUICtrlSetData($Progress1,$i) ; übergib den Wert von $i an Prozessbalken
    GUICtrlSetData($Label1,$i & "%")
    WinSetTitle($Form1_1,"","Prozessbar " & $i & "%")
    Sleep(100) ; Schlafe 100 ms
    Next ; wiederhole das ganze bis $i = 100
    MsgBox(0,"","FERTIG!") ; Erzeuge Message-Box mit Fertig

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

    EndFunc

    [/autoit]
  • Progressbar %-Fortschritt-Anzeige im GUI-Titel

    • hexpirator
    • 21. Dezember 2011 um 16:00

    Super! Danke blacky94
    Das ist genau das, wonach ich gesucht habe.

    Vielen Dank nochmal und frohe Feiertage. :)

  • Progressbar %-Fortschritt-Anzeige im GUI-Titel

    • hexpirator
    • 21. Dezember 2011 um 15:48

    Hallo.

    Ich wüsste gerne, ob es möglich ist einen prozentualen Fortschritt im Titel einer GUI anzeigen zu lassen.

    Hier mein bisheriges Script:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1_1 = GUICreate("Prozessbar", 224, 103, 252, 188)
    $Progress1 = GUICtrlCreateProgress(32, 33, 150, 12)
    $B_LOS = GUICtrlCreateButton("LOS", 72, 64, 75, 25, $WS_GROUP)
    $Label1 = GUICtrlCreateLabel("0%", 8, 72, 36, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1 ; Endlosschleife
    $nMsg = GUIGetMsg() ; Abfrage, ob sich in der GUI etwas ändert
    Switch $nMsg ; Vergleich mit den nachfolgenden Case-Befehlen
    Case $GUI_EVENT_CLOSE ; wird ausgeführt, wenn der Anwender den X-Button klickt
    Exit ; Ende
    Case $B_LOS ; wird ausgeführt, wenn der Anwender den LOS-Button klickt
    _LOS () ; zur Funktion LOS springen
    EndSwitch
    WEnd

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

    Func _LOS () ; Start der Funktion "_LOS ()"
    For $i = 0 To 100 Step 1 ; für $i = 0 bis 100 in einserschritten
    GUICtrlSetData($Progress1,$i) ; übergib den Wert von $i an Prozessbalken
    GUICtrlSetData($Label1,$i & "%")
    Sleep(100) ; Schlafe 100 ms
    Next ; wiederhole das ganze bis $i = 100
    MsgBox(0,"","FERTIG!") ; Erzeuge Message-Box mit Fertig

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

    EndFunc

    [/autoit]

    Danke schonmal im Voraus.

  • Ein Code für mehrere Hotkeys

    • hexpirator
    • 15. Dezember 2011 um 21:41

    Da musst du dich schon etwas präziser ausdrücken.

    Also ich habe nichts verstanden ?( .

    Sorry

  • FileListToArray Ordner und Dateien unterscheiden???

    • hexpirator
    • 13. Dezember 2011 um 09:34

    vielen Dank TheLuBu

    Hat denn der letzte Ordner im Verzeichnisbaum denn auch ein "\" anhängend ?

  • Objektorientiertes programmieren?

    • hexpirator
    • 13. Dezember 2011 um 09:23

    Hi Leute. Gibt es ein gutes Tutorial, das einem auf einfache Art und Weise, erläutert, wie objektorientiertes Programmieren funktioniert?

    Geht das überhaupt mit AutoIt?

    Gruß

  • FileListToArray Ordner und Dateien unterscheiden???

    • hexpirator
    • 13. Dezember 2011 um 08:44

    Bedeutet das dass,
    FileFindNextFile
    die Liste abarbeitet, die vorher von
    FileFindFirstFile
    abgerufen wurde? Wenn ja dann habe ich es soweit verstanden.

    Das Problem, dass ich sehe ist, dass in den gefundenen Ordnern evtl. sich noch Unterordner befinden.
    Die Unterordner müsste man ja dann auch durchsuchen. Wie lässt sich das denn bewerkstelligen?

  • FileListToArray Ordner und Dateien unterscheiden???

    • hexpirator
    • 12. Dezember 2011 um 14:42

    Ich habe auch über FileFindFirstFile(), FileFindNextFile() gelesen, aber irgendwie kapiere ich die Hilfe nicht.

    Kannst du es mir vielleicht so erklären, dass isch das kapiere?

  • FileListToArray Ordner und Dateien unterscheiden???

    • hexpirator
    • 12. Dezember 2011 um 13:02

    Hi Leute.

    Nach mehrmaligen vergeblichen Versuchen durch die Suche etwas passendes zu finden, wende ich mich hiermit an euch.

    Wie kann ich einen Verzeichnisinhalt einlesen und den dann abhängig davon ob in der Liste ein Ordner ist, das script einen job machen zu lassen und wenn als nächstes eine Datei folgt, einen anderen zu tun?

    Ich hoffe ich habe mich verständlich augedrückt. :rolleyes:

    Gruß, Hexpirator

  • Warum werden Dateien nicht kopiert? Hilfe

    • hexpirator
    • 7. Dezember 2011 um 21:22

    Danke für den Tip.

    Ich bekomme einen Fehler, wenn kein Unterschied in dem Ordner ist.
    Das steht dann in der Konsole

    FileCopy($OpenQuell & "\" & StringstripWS($aUnterschied_Quell[$h], 3), $OpenZiel & "\" & StringstripWS($aUnterschied_Quell[$h], 3), 9)
    FileCopy($OpenQuell & "\" & StringstripWS(^ ERROR

  • Warum werden Dateien nicht kopiert? Hilfe

    • hexpirator
    • 7. Dezember 2011 um 20:58

    Hallo TheLuBu.

    Die Kommentare sind goldwert. Ich habe die Leerzeichen einfach nicht gesehen. Sind ja auch so schwer zu sehen. ;) :D
    Dank dir bin ich schon ein gutes Stück weiter gekommen. Jetzt werden wenigstens schon mal Dateien kopiert.
    Das Problem ist, dass die Verzeichnisse vernachlässigt werden.

  • Warum werden Dateien nicht kopiert? Hilfe

    • hexpirator
    • 6. Dezember 2011 um 15:37

    Dann verstehe ich aber nicht, wor der Unterschied zu meinem Script sein soll, bis auf den Flag, den ich gesetzt habe.

    [autoit]

    $aUnterschied_Quell[1]

    [/autoit]


    die 1 musste ich nehmen, weil im [0] die Anzahl, der Segmente steht und in [1] die tatsächlichen Unterschiede zwischen Quell und Zielordner.

  • Warum werden Dateien nicht kopiert? Hilfe

    • hexpirator
    • 6. Dezember 2011 um 14:29

    Hallo Marvin.

    Soweit ich dein geändertes Script verstehe, wird in diesem Teil

    [autoit]

    For $h = 1 To UBound($aFileList_Quell)-1
    FileCopy($OpenQuell & "\" & $aUnterschied_Quell[$h],$OpenZiel)

    [/autoit]

    die For-Schleife sooft durchlaufen wie es Dateien im Quellverzeichnis gibt.
    Das heißt, wenn in $aFileList_Quell 100000 Dateien sind, wird die Schleife dementsprechend 100000 mal durchlaufen.
    die Differenz zwischen Ziel und Quellverzeichnis wird aber meist kleiner sein.

    müsste in der For-Schleife nicht $aUnterschied_Quell genommen werden? Oder verstehe ich das falsch?

    Gruß

  • Warum werden Dateien nicht kopiert? Hilfe

    • hexpirator
    • 6. Dezember 2011 um 12:43

    Hallo Protex
    so läuft es zwar, aber es kopiert mir einfach die gesamten Dateien aus dem Quellverzeichnis in das Zielverzeichnis.
    Oder verstehe ich da etwas falsch?
    Ich wollte aber dass es mir nur die Differenz zwichen den beiden Verzeichnissen kopiert.

    Mag sein ,dass ich es falsch interprätiere.

    Gruß, Hexpirator

  • Warum werden Dateien nicht kopiert? Hilfe

    • hexpirator
    • 5. Dezember 2011 um 15:40

    Bist du dir da wirklich sicher oder vermutest du das nur.

    In den Beispielen hier im Forum wird immer "\" Backslash geschrieben und in der Hilfe auch. ?(
    Hast du es denn mit "/" getestet?

    Ich wäre echt dankbar, wenn sich jemand mein Script mal anschauen würde.

    Gruß

  • Warum werden Dateien nicht kopiert? Hilfe

    • hexpirator
    • 5. Dezember 2011 um 09:29

    So hab jetzt in Thread 1 die fehlende Datei angehängt.

    Das funktioniert soweit alles, nur der FileCopy-Befehl will irgendwie nicht. :(

    Ich weiß aber nicht was ich da falsch mache. Gruß.

  • Warum werden Dateien nicht kopiert? Hilfe

    • hexpirator
    • 4. Dezember 2011 um 23:15
    Spoiler anzeigen
    [autoit]

    ; By Hexpirator

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

    ; Das Script soll Dateien aus dem Quellordner mit denen aus dem Zielordner
    ; vergleichen und neu hinzugefügten Dateien in den Zielordner kopieren.
    #include "_GetIntersection.au3"
    #include <File.au3>
    #include <Array.au3>

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

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1_1 = GUICreate("Dateiarchivierer", 402, 293, 261, 151)
    $Datei = GUICtrlCreateMenu("&Datei")
    $Quelle = GUICtrlCreateMenuItem("Quellordner auswählen... (Q)", $Datei)
    $Ziel = GUICtrlCreateMenuItem("Zielordner auswählen... (Z)", $Datei)
    $Beenden = GUICtrlCreateMenuItem("Programm Beenden... (Strg+X)", $Datei)
    $Group1 = GUICtrlCreateGroup("Option wählen:", 8, 104, 377, 81)
    $Radio_loeschen = GUICtrlCreateRadio("Daten im Quellordner löschen !!!", 24, 152, 177, 17)
    $Radio_behalten = GUICtrlCreateRadio("Daten im Quellordner beibehalten", 24, 128, 185, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Modus wählen:", 8, 8, 377, 81)
    $Radio_einmalig = GUICtrlCreateRadio("Daten einmalig abgleichen ?", 24, 32, 161, 17)
    $Radio_automat = GUICtrlCreateRadio("Daten automatisch nach vorgegebener Zeit angleichen", 24, 56, 297, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Los = GUICtrlCreateButton("Los", 8, 224, 83, 33, $WS_GROUP)
    $Label1 = GUICtrlCreateLabel("By Hexpirator", 104, 240, 75, 17)
    GUISetState(@SW_SHOW)
    Dim $Form1_1_AccelTable[1][2] = [["^!p", $Ziel]]
    GUISetAccelerators($Form1_1_AccelTable)
    #EndRegion ### END Koda GUI section ###

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

    Global $OpenQuell = 0
    Global $OpenZiel = 0

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    ;-----------------------
    Case $GUI_EVENT_CLOSE, $Beenden
    Exit
    ;-----------------------
    Case $Quelle
    _Open_Quell()
    ;-----------------------
    Case $Ziel
    _Open_Ziel()
    ;-----------------------
    Case $Radio_loeschen
    _Radiodelete()
    ;-----------------------
    Case $Los
    _Los()
    ;-----------------------
    EndSwitch
    WEnd

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

    ;-----------------------

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

    Func _Open_Quell()
    $OpenQuell = FileSelectFolder("Quellordner wählen", "Arbeitsplatz")
    EndFunc
    ;-----------------------

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

    Func _Open_Ziel()
    $OpenZiel = FileSelectFolder("Zielordner wählen", "Arbeitsplatz")
    EndFunc
    ;-----------------------

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

    Func _Radiodelete()

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

    $Option_Entscheidung = MsgBox(52, "Achtung!!!","Möchten Sie die Daten im Quellordner" &@CRLF & "nach dem Kopiervorgang wirklich löchen?")
    ;MsgBox(0,"lesen",$Option_Entscheidung) ;beim JA-drücken -> 6 beim NEIN -> 7
    If $Option_Entscheidung = 7 Then
    GUICtrlSetState($Radio_loeschen, $GUI_UNCHECKED)
    GUICtrlSetState($Radio_behalten, $GUI_CHECKED)
    EndIf

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

    EndFunc
    ;-----------------------

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

    Func _Los()

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

    $Radio_einmalig_Status = GUICtrlRead ($Radio_einmalig)
    $Radio_automat_Status = GUICtrlRead ($Radio_automat)
    If $Radio_einmalig_Status = $Radio_automat_Status Then
    MsgBox (48, "Modus","Bitte Modus wählen.")
    Return
    EndIf

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

    $Radio_behalten_Status = GUICtrlRead ($Radio_behalten)
    $Radio_loeschen_Status = GUICtrlRead ($Radio_loeschen)
    If $Radio_behalten_Status = $Radio_loeschen_Status Then
    MsgBox (48, "Option","Bitte Option wählen.")
    Return
    EndIf

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

    $aFileList_Quell = _FileListToArray($OpenQuell)

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

    If @error = 1 Then
    MsgBox(64,"Info","Bitte wählen Sie den Quellordner")
    Return
    Else
    _ArrayDisplay($aFileList_Quell, "Quelle")
    EndIf

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

    $aFileList_Ziel = _FileListToArray($OpenZiel)

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

    If @error = 1 Then
    MsgBox(64,"Info","Bitte wählen Sie den Zielordner")
    Return
    Else
    _ArrayDisplay($aFileList_Ziel, "Ziel")
    EndIf

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

    ; Unterschiede zwischen $aFileList_Quell und $aFileList_Ziel ermitteln und auflisten
    $ret = _GetIntersection ($aFileList_Quell, $aFileList_Ziel,0, ' ')
    $diff1 = ''
    $diff2 = ''
    If Not @error Then
    For $i = 0 To UBound($ret) -1
    If $ret[$i][1] <> '' Then $diff1 &= $ret[$i][1] & ' ; '
    If $ret[$i][2] <> '' Then $diff2 &= $ret[$i][2] & ' ; '
    Next
    EndIf

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

    If $diff1 <> $diff2 Then
    $aUnterschied_Quell = StringSplit ($diff1,";")
    ;_ArrayDisplay ($aUnterschied_Quell,"$aUnterschied_Quell")
    For $h = 1 To $aUnterschied_Quell[1]
    FileCopy($OpenQuell & "\" & $aUnterschied_Quell[$h],$OpenZiel,9)
    If @error = 1 Then
    MsgBox (0,"","Fehler")
    EndIf
    Next
    EndIf
    ;MsgBox(0, '', 'Unterschiede 1: ' & $diff1 & @LF & 'Unterschiede 2: ' & $diff2)

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

    EndFunc

    [/autoit]

    Sorry wegen meinem Programmierstil. Bin halt noch ein Newbie. :rolleyes:

    Dateien

    _GetIntersection.au3 3,84 kB – 290 Downloads
  • Im Array Einträge suchen, die vom anderen Array stammen und bei Misserfolg Datei kopieren.

    • hexpirator
    • 25. November 2011 um 18:40

    Sorry. Ich habe deine Udf gestern schon in mein Script implementiert und es liefert mir genau das richtige was ich gesucht habe.
    Vielleicht hab ich da oben zu schnell geantwortet. Tschuldigung. :S
    Saubere Arbeit.

    danke nochmal.

  • Im Array Einträge suchen, die vom anderen Array stammen und bei Misserfolg Datei kopieren.

    • hexpirator
    • 24. November 2011 um 22:54

    Dann könnte ich quasi das neu entstandene Array für meine Kopierzwecke verwenden ?

    Hab ich das soweit richtig verstanden?

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™