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

Beiträge von Fliwatt

  • Liniendiagramm erstellen

    • Fliwatt
    • 21. Januar 2013 um 22:12

    Hi Leute,
    ich suche eine Möglichkeit ein Liniendiagramm in AutoIT zu erstellen, bei dem der y Wert in einer Array gespeichert ist und der x Wert immer regelmäßig aufsteigend ist (0,1,2,3 etc...)
    Ich habe ein paar Scripte gefunden, aber entweder waren diese für ein Balkendiagramm oder haben überhaupt gar nicht funktioniert.
    Ich wollte euch deshalb fragen, ob ihr eine Möglichkeit kennt das zu realisieren
    Fliwatt

  • Seltsames ComboBox Verhalten

    • Fliwatt
    • 14. Januar 2013 um 19:59

    Hi Alcros,
    ich bin gerade dabei meinen gesamten Script nach dem Schema umzuschreiben,
    trotzdem nochmal zwei Fragen:
    1.Wieso setzt du die if Argumente in Klammern?
    2.Ist das in Zeile 8 Absicht, dass du ein Then weggelassen hast?
    Mfg Fliwatt

  • Seltsames ComboBox Verhalten

    • Fliwatt
    • 14. Januar 2013 um 16:06

    Hi Bugfix,
    erstmal danke für deine Antwort,
    mein Problem ist nur, dass die ComboBox auch entsprechend der Variablen änderbar seien muss und das ist mit der Textdatei nur schwer realisierbar.
    Zum Beispiel wenn $PoAInstalled = 3 ist dann soll nur der Eintrag "Alle Kapitel" erscheinen und weiterhin soll dann der Button von "Installieren" auf "Aktivieren" geschaltet werden können.
    Mfg Fliwatt

  • Seltsames ComboBox Verhalten

    • Fliwatt
    • 13. Januar 2013 um 21:54

    Hi Leute,
    ich arbeite im Moment an einem kleinen Projekt für mich, deshalb ist der Code auch so unsauber und dort habe ich ein komisches Verhalten festgestellt.
    Ich habe verschiedene ComboBoxen und je nachdem welche ich auswähle ändert sich die zweite ComboBox, dabei ist mir etwas aufgefallen:
    Wenn ich in dem Programm "Days of Ahoul" auswähle, dann nimmt er den Inhalt von "Pillars of Avalon". Dann habe ich erstmal alles auf die ComboBoxen geschoben und habe die Elemente bei jeder Änderung löschen und neu erstellen lassen. Als das auch nichts half habe ich einfach mal Debug "Console Writes" erstellt und siehe da:
    Oben steht ja if $SelectedItem = 2 Then ConsoleWrite(blablabla), aber das trifft nie ein. Das heißt eigentlich müsste ja dann unten in dem if Befehl die Schleife durch Days of Ahoul durchgehen, tut sie aber nicht.
    Dann ist mir noch weiterhin aufgefallen, dass wenn ich von "Siege of Avalon" die Maus ohne "Pillars of Avalon" zu berühren direkt auf "Days of Ahoul" schiebe, das Programm "Days of Ahoul" erkennt.
    Wieso ist mir schleierhaft, vieleicht könnt ihr mir helfen

    Spoiler anzeigen
    [autoit]


    $SelectedItem = 0
    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    ; $BackupPath = IniRead("ModToolConfig.ini","main","BackupPath",@ScriptDir & "\BackupFiles")
    ;$PoAInstalled = IniRead("ModToolConfig.ini","mods","PoAInstalled","error")
    ; $DoAInstalled = IniRead("ModToolConfig.ini","mods","DoAInstalled","error")
    ;$ActivatedGame = IniRead("ModToolConfig.ini","mods","ActivatedGame","error")
    $PoAInstalled = 0
    $DoAInstalled = 0
    ConsoleWrite($BackupPath & @CRLF & $PoAInstalled & @CRLF & $DoAInstalled & @CRLF & $ActivatedGame & @CRLF)
    ;If $PoAInstalled = "error" or $DoAInstalled = "error" or $ActivatedGame = "error" Then
    ; MsgBox(16,"SoA Mod Tool","ERROR, ini konnte nicht gelesen werden")
    ; Exit
    ;EndIf
    #Region ### START Koda GUI section ### Form=D:\Extras\Programmieren\AUTOIT\Koda Forms\SoA Mod Tool.kxf
    Global $Form_main1 = GUICreate("SoA Mod Tool", 679, 63, 238, 140)
    Global $Combo_main1 = GUICtrlCreateCombo("Siege of Avalon", 0, 24, 209, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
    GUICtrlSetData(-1,"Pillars of Avalon|Days of Ahoul","")
    $Label_main1 = GUICtrlCreateLabel("Spiel auswählen", 56, 0, 119, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    $Label_main2 = GUICtrlCreateLabel("Kapitel auswählen", 264, 0, 132, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    Global $Combo_main2 = GUICtrlCreateCombo("Bitte wählen", 224, 24, 209, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Button_main1 = GUICtrlCreateButton("Installieren", 440, 24, 233, 33)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    ;ConsoleWrite(GUICtrlRead($Combo_main1))
    If $SelectedItem = 2 Then
    ConsoleWrite($SelectedItem & @CRLF)
    EndIf
    If GUICtrlRead($Combo_main1) = 'Pillars of Avalon' and Not $SelectedItem = 1 Then
    ConsoleWrite("Pillars of Avalon" & @CRLF)
    GUICtrlSetState($Combo_main2,$GUI_ENABLE)
    If $PoAInstalled = 0 or $PoAInstalled = 1 Then
    GUICtrlDelete($Combo_main2)
    $Combo_main2 = GUICtrlCreateCombo("Kapitel 1", 224, 24, 209, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
    GUICtrlSetData(-1,"Kapitel 2|Kapitel 3|Alle Kapitel")
    ElseIf $PoAInstalled = 2 Then
    GUICtrlDelete($Combo_main2)
    $Combo_main2 = GUICtrlCreateCombo("Kapitel 1+2", 224, 24, 209, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
    GUICtrlSetData(-1,"Kapitel 3")
    ElseIf $PoAInstalled = 3 Then
    GUICtrlDelete($Combo_main2)
    $Combo_main2 = GUICtrlCreateCombo("Alle Kapitel", 224, 24, 209, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
    Else
    MsgBox(16,"SoA Mod Tool","Ungültiger Install-Wert(hör auf an der ini rumzufummeln!")
    EndIf
    $SelectedItem = 1
    ElseIf GUICtrlRead($Combo_main1) = 'Days of Ahoul' and Not $SelectedItem = 2 Then
    ConsoleWrite("Days of Ahoul" & @CRLF)
    $SelectedItem = 2
    GUICtrlSetState($Combo_main2,$GUI_ENABLE)
    If $DoAInstalled = 0 or $DoAInstalled = 1 Then
    GUICtrlDelete($Combo_main2)
    $Combo_main2 = GUICtrlCreateCombo("Kapitel 1", 224, 24, 209, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
    GUICtrlSetData(-1,"Kapitel 2|Alle Kapitel")
    ElseIf $DoAInstalled = 2 Then
    GUICtrlDelete($Combo_main2)
    $Combo_main2 = GUICtrlCreateCombo("Alle Kapitel", 224, 24, 209, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
    Endif
    ElseIf GuiCtrlRead($Combo_main1) = 'Siege of Avalon' and not $SelectedItem = 0 Then
    ConsoleWrite("Siege of Avalon" & @CRLF)
    $SelectedItem = 0
    GUICtrlSetState($Combo_main2,$GUI_DISABLE)
    GUICtrlSetState($Button_main1,$GUI_ENABLE)
    GUICtrlSetData($Button_main1,"Aktivieren")

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

    EndIf
    WEnd

    [/autoit]


    Mfg Fliwatt

  • Script lässt Dateien aus

    • Fliwatt
    • 8. Januar 2013 um 16:32

    Dankeschön, soweit ich es sehe kann, geht es schon einmal.
    Ich meld mich, falls ich noch einmal Probleme bekomme
    Mfg Fliwatt

  • Script lässt Dateien aus

    • Fliwatt
    • 7. Januar 2013 um 19:31

    Hi Leute,
    ich habe vor kurzem eine UDF geschrieben, mit der man einen Ordner mit Unterordner in einen anderen kopieren kann, welches aber vorher die MD5 Checksums checkt und wenn sie gleich sind die Datei überspringt, wenn sie aber verschieden sind die Original Datei in einem externen Ordner "backupt" und dann überschreibt.
    Mein Script hat keinen Syntaxfehler, aber es werden anscheinend Dateien übersprungen.
    Ich habe den Script schon mehrmals durchgesehen, habe aber keine Ahnung woran es liegen könnte.
    Ich benutze zum Ordnerauflisten die UDF von AutoIt.de User Tweaky, ich habe sie mit Region Tags markiert.
    Vieleicht findet ihr den Fehler, ich habe es auch schon mit Debug versucht und schon DebugConsoleWrite's erstellt um Tweakys UDF zu testen, mir ist aber nichts aufgefallen
    Bei einem Versuch hat das Script erst ewig gerödelt, aber am Ende hat er gar nichts kopiert, geschweige denn Backups erstellt.
    Mfg Fliwatt

    Spoiler anzeigen
    [autoit]


    #region Rekursive Ordnerauflistung Funktion
    #include <Array.au3>
    #include <File.au3>
    #include <Crypt.au3>

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

    ;*******************************************************************************************************************************************************************************************************************************************
    ; Funktion _ordner_rekursiv($udf_quellordner[, $udf_Ordner_Dateien[, $udf_unterordner=True[, $udf_spalte_datum=False[, $udf_dateityp = "*"[, $udf_auslassen = ""]]]]])
    ; Beschreibung ermittelt alle Dateien/Ordner des angegebenen Verzeichnisses
    ; Parameter $udf_quellordner: der zu durchsuchende Ordner (Angabe: einzelner Ordner als String oder mehrere Ordner im Array beginnend bei 1)
    ; optional $udf_Ordner_Dateien: 1 = Dateien auflisten (Standard) 2 = Ordner auflisten
    ; optional $udf_unterordner: True = Unterordner miteinbeziehen (Standard) False = Unterordner nicht miteinbeziehen
    ; optional $udf_spalte_datum: True = Änderungsdatum der Datei ermitteln False = Änderungsdatum der Datei nicht ermitteln (Standard)
    ; optional $udf_dateityp: einzuschließende Dateitypen (mehrere Typen durch | trennen) "*" >>> alle (Standard)
    ; optional $udf_auslassen: Wörter, die im Pfad oder Dateinamen vorkommen, auslassen (mehrere durch | trennen) "" <<< Standard
    ; Rückgabewert Erfolg: Gibt ein Array mit 3 Spalten zurück (Dateiname, Dateipfad, Änderungsdatum)
    ; Fehler: 0 setzt @error
    ; @error = 1 mindestens 1 Pfad existiert nicht
    ; Autor Tweaky (http://www.autoit.de)
    ;*******************************************************************************************************************************************************************************************************************************************

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

    ;********************************************
    ; Ordner rekursiv (Hauptfunktion) *
    ;********************************************

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

    Func _ordner_rekursiv($udf_quellordner, $udf_Ordner_Dateien = 1, $udf_unterordner = True, $udf_spalte_datum = False, $udf_dateityp = "*", $udf_auslassen = "")
    Local $verzeichnisse_alle[1] ;Array für die Ordner
    Local $array_alles[1000000][3] ;Array für die Ordner und Dateien
    Local $szDrive, $szDir, $szFName, $szExt

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

    If Not IsArray($udf_quellordner) Then ;Falls der Quellordner kein Array ist, ein Array erstellen
    $udf_quellordner_tmp = $udf_quellordner
    Dim $udf_quellordner[2]
    $udf_quellordner[0] = 1
    $udf_quellordner[1] = $udf_quellordner_tmp
    EndIf

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

    For $i = 1 To UBound($udf_quellordner) - 1
    If Not FileExists($udf_quellordner[$i]) Or Not StringInStr($udf_quellordner[$i], ":") Then
    SetError(1) ;mindestens 1 Pfad existiert nicht
    Return 0
    EndIf

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

    If StringRight($udf_quellordner[$i], 1) <> "\" Then $udf_quellordner[$i] &= "\"

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

    $udf_quellordner_einzeln = $udf_quellordner[$i]

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

    If $udf_unterordner = True Then ;mit Unterordner
    _ordner_rekursiv_mit_unterordner($udf_quellordner_einzeln, $verzeichnisse_alle)
    _ArrayAdd($verzeichnisse_alle, $udf_quellordner_einzeln)
    Else ;ohne Unterordner
    $verzeichnisse_alle = $udf_quellordner
    EndIf
    Next

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

    If IsArray($verzeichnisse_alle) Then $verzeichnisse_alle[0] = UBound($verzeichnisse_alle) - 1 ;In die erste Zeile die Anzahl der Dateien schreiben

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

    $zaehler_fortlaufend = 0

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

    If $udf_Ordner_Dateien = 1 Then ;Dateien auflisten

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

    If Not IsArray($verzeichnisse_alle) Then
    $verzeichnisse_alle_tmp = $verzeichnisse_alle
    Local $verzeichnisse_alle[2] ;Array für die Ordner
    $verzeichnisse_alle[1] = $verzeichnisse_alle_tmp
    EndIf

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

    For $u = 1 To UBound($verzeichnisse_alle) - 1
    $array_alle_dateien = _FileListToArray($verzeichnisse_alle[$u], "*", 1)

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

    For $k = 1 To UBound($array_alle_dateien) - 1
    $kriterien_ok = 0

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

    If $udf_dateityp = "*" Then ;Dateityp nicht angegeben oder alle Dateien
    $kriterien_ok = 1
    Else ;1 oder mehrere Dateitypen angegeben
    $dateityp_split = StringSplit($udf_dateityp, "|")
    $udf_dateiendung_array = _PathSplit($array_alle_dateien[$k], $szDrive, $szDir, $szFName, $szExt)
    $udf_dateiendung = $udf_dateiendung_array[4]
    For $i = 1 To UBound($dateityp_split) - 1
    If "." & $dateityp_split[$i] = StringRight($array_alle_dateien[$k], StringLen($udf_dateiendung)) Then
    $kriterien_ok = 1
    ExitLoop
    EndIf
    Next
    EndIf

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

    If $udf_auslassen <> "" Then ;Wörter in dem Pfad und Datei auslassen
    $auslassen_split = StringSplit($udf_auslassen, "|")
    For $i = 1 To UBound($auslassen_split) - 1
    If StringInStr($array_alle_dateien[$k], $auslassen_split[$i]) Or StringInStr($verzeichnisse_alle[$u], $auslassen_split[$i]) Then
    $kriterien_ok = 0
    ExitLoop
    EndIf
    Next
    EndIf

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

    ;Papierkorb und System Volume Information wird nicht aufgelistet
    If StringInStr($array_alle_dateien[$k], 'RECYCLER') Or StringInStr($verzeichnisse_alle[$u], 'RECYCLER') _
    Or StringInStr($array_alle_dateien[$k], 'RECYCLED') Or StringInStr($verzeichnisse_alle[$u], 'RECYCLED') _
    Or StringInStr($array_alle_dateien[$k], 'System Volume Information') Or StringInStr($verzeichnisse_alle[$u], 'System Volume Information') _
    Or StringInStr($array_alle_dateien[$k], '$RECYCLE.BIN') Or StringInStr($verzeichnisse_alle[$u], '$RECYCLE.BIN') Then
    $kriterien_ok = 0
    ExitLoop
    EndIf

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

    ;wenn der Dateityp passt und die Datei bzw. der Ordner nicht ausgelassen werden soll
    If $kriterien_ok = 1 Then
    $zaehler_fortlaufend += 1
    $array_alles[$zaehler_fortlaufend][0] = $verzeichnisse_alle[$u]
    $array_alles[$zaehler_fortlaufend][1] = $array_alle_dateien[$k]
    If $udf_spalte_datum = True Then $array_alles[$zaehler_fortlaufend][2] = FileGetTime($verzeichnisse_alle[$u] & $array_alle_dateien[$k], 0, 1)
    EndIf
    Next
    Next

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

    Else ;Ordner auflisten
    For $i = 1 To UBound($verzeichnisse_alle) - 1
    $kriterien_ok = 1

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

    ;Papierkorb und System Volume Information wird nicht aufgelistet
    If StringInStr($verzeichnisse_alle[$i], 'RECYCLER') Or StringInStr($verzeichnisse_alle[$i], 'RECYCLED') _
    Or StringInStr($verzeichnisse_alle[$i], 'System Volume Information') Or StringInStr($verzeichnisse_alle[$i], '$RECYCLE.BIN') Then
    $kriterien_ok = 0
    ExitLoop
    EndIf

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

    If $kriterien_ok = 1 Then
    $zaehler_fortlaufend += 1
    $array_alles[$zaehler_fortlaufend][0] = $verzeichnisse_alle[$i]
    EndIf
    Next
    EndIf

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

    ;Leere Zeilen am Ende löschen
    ReDim $array_alles[$zaehler_fortlaufend + 1][3]

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

    ;In die erste Zeile die Anzahl der Dateien schreiben
    If IsArray($array_alles) Then $array_alles[0][0] = UBound($array_alles) - 1

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

    $verzeichnisse_alle = 0 ;Array löschen

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

    Return $array_alles ;Array zurückgeben
    EndFunc ;==>_ordner_rekursiv

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

    ;**************************************
    ; Unterordner durchsuchen *
    ;**************************************

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

    Func _ordner_rekursiv_mit_unterordner($udf_quellordner, ByRef $verzeichnisse_alle)
    $verzeichnisse = _FileListToArray($udf_quellordner, "*", 2)

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

    For $i = 1 To UBound($verzeichnisse) - 1
    $verzeichnisse[$i] = $udf_quellordner & $verzeichnisse[$i] & "\"
    _ArrayAdd($verzeichnisse_alle, $verzeichnisse[$i])
    _ordner_rekursiv_mit_unterordner($verzeichnisse[$i], $verzeichnisse_alle)
    Next
    EndFunc ;==>_ordner_rekursiv_mit_unterordner
    #endregion Rekursive Ordnerauflistung Funktion
    Func _DirCopyBackup($sSource,$sTarget,$sBackupFolder)
    _Crypt_Startup()
    Local $iCounterDirCopyBackup = 1
    Local $iCounterDirCopyBackup2 = 1
    Local $fFound = 0
    Local $aSourceRekursiv = _ordner_rekursiv($sSource)
    Local $aTargetRekursiv = _ordner_rekursiv($sTarget)
    For $iCounterDirCopyBackup = 1 To Ubound($aSourceRekursiv)-1
    For $iCounterDirCopyBackup2 = 1 To Ubound($aTargetRekursiv)-1
    If StringTrimLeft($aSourceRekursiv[$iCounterDirCopyBackup][0] & $aSourceRekursiv[$iCounterDirCopyBackup][1],StringLen($sSource)) = StringTrimLeft($aTargetRekursiv[$iCounterDirCopyBackup2][0] & $aTargetRekursiv[$iCounterDirCopyBackup2][1],StringLen($sTarget)) Then
    If Not _Crypt_HashFile($aSourceRekursiv[$iCounterDirCopyBackup][0] & $aSourceRekursiv[$iCounterDirCopyBackup][1],$CALG_MD5) = _Crypt_HashFile($aTargetRekursiv[$iCounterDirCopyBackup2][0] & $aTargetRekursiv[$iCounterDirCopyBackup2][1], $CALG_MD5) Then
    FileCopy($aSourceRekursiv[$iCounterDirCopyBackup][0] & $aSourceRekursiv[$iCounterDirCopyBackup][1],$sBackupFolder & StringTrimLeft($aTargetRekursiv[$iCounterDirCopyBackup2][0] & $aTargetRekursiv[$iCounterDirCopyBackup2][1],StringLen($sTarget)),9)
    FileCopy($aSourceRekursiv[$iCounterDirCopyBackup][0] & $aSourceRekursiv[$iCounterDirCopyBackup][1],$aTargetRekursiv[$iCounterDirCopyBackup2][0] & $aTargetRekursiv[$iCounterDirCopyBackup2][1],1)
    $fFound = 1
    Else
    $fFound = 1
    EndIf
    Endif
    Next
    If $fFound = 0 Then
    FileCopy($aSourceRekursiv[$iCounterDirCopyBackup][0] & $aSourceRekursiv[$iCounterDirCopyBackup][1],$sTarget & StringTrimLeft($aSourceRekursiv[$iCounterDirCopyBackup][0] & $aSourceRekursiv[$iCounterDirCopyBackup][1],StringLen($sSource)),9)
    Else
    Local $fFound = 0
    EndIf
    Next
    Return $aSourceRekursiv[0][0]
    _Crypt_Shutdown()
    EndFunc
    MsgBox(0,"",_DirCopyBackup(FileSelectFolder("Source",""),FileSelectFolder("Target",""),FileSelectFolder("Backup",""))) ;Nur zum Test der meines Scriptes, nicht notwendig zum Ausführen.
    Exit

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


    PS _DirCopyBackup(ab z.163) ist meine Funktion, der Rest ist von Tweaky

  • "Send" ohne HotKey

    • Fliwatt
    • 4. Januar 2013 um 22:09

    Nochmal zum einfachen Verständnis:
    Du öffnest die Autoit Windows Info, wenn du Win7 hast, einfach in der Suche Window Info eingeben und starten.
    In dem Programm klickst du das Fadenkreuz im Finder Tool an, hälst gedrückt und bewegst das Ding auf den anzuklickenden Button, sodass dieser umrandet ist.
    Dann liest du die Infos ein und überträgst sie in diesen Scriptschnipsel:

    [autoit]


    ControlClick("Title","ggf. Text","[CLASS:Button; INSTANCE:1]")

    [/autoit]


    Im ersten Eintrag gibst du den Fenster Titel ein, kannst du unter der Kategorie "Title" einlesen (auf richtige GROSS, klein und Rächtschriebung Schreibung achten)
    Bei dem 2ten kannst du, wenn du willst noch ein bischen aus dem Fenster eingeben, auch hier (auf richtige GROSS, klein und Rächtschriebung Schreibung achten)
    der 3.Eintrag ist der wichtige, erstmal bei dem Eintrag Class aus Autoit Window Info auslesen, (auf richtige GROSS, klein und Rächtschriebung Schreibung achten)
    bei dem 4.ten aus dem Eintrag Instance, die Zahl hinter INSTANCE einsetzen

    Dass sollte es entsprechend anklicken, bei manchen Programmen geht das nicht, musst du mal probieren.
    Mfg Fliwatt

    EDIT: Das mit

    Zitat

    auf richtige GROSS, klein und Rächtschriebung Schreibung achten)

    ist nicht ernstgemeint, nur für die Dumpfbacken, die das nicht verstehen

  • Copying Tool

    • Fliwatt
    • 3. Januar 2013 um 22:19

    So, jetzt reicht es mir hier.
    Ich werde das Projekt jetzt alleine übernehmen, ich wollte nur HIlfe von jemandem , der vieleicht ein bischen Freizeit hat, damit ich an einem anderen Teil des Programmes weiterarbeiten kann und dafür ist dieses Forum ja auch da. Ich habe auch geschrieben, dass es wahrscheinlich jemand besser kann, aber wenn sich da so ein pingeliger Shitstorm sich zusammenbraut, dann mache ich es lieber selber als mir von euch helfen zu lassen.
    Bitte keine Scripts und keine Antworten auf den Thread mehr
    #Please Close
    Mfg Fliwatt

  • Copying Tool

    • Fliwatt
    • 3. Januar 2013 um 21:52

    Hallo AutoBert,
    ich habe es erstens im "Ohne Gegenleistung" Thread geschrieben
    zweitens war das mit der MD5 Pfrüfung nur ein Vorschlag, wenn es ohne das geht, ist auch gut.
    Mfg Fliwatt

  • Copying Tool

    • Fliwatt
    • 3. Januar 2013 um 13:15

    PUSH

  • Copying Tool

    • Fliwatt
    • 1. Januar 2013 um 14:32

    Du verstehst mich falsch, es gibt drei Punkte, einmal Backup Ordner einmal Ziel, einmal Quelle wobei jedes verschieden ist.
    Ich schreibe es dir mal in einer Pseudoprogrammiersprache auf:

    Code
    Liste Ordner und Unterordner auf;
    Versuche Dateien von Quelle zu Ziel zu kopieren
    Falls Datei schon in Ziel vorhanden Dann
     	Falls MD5 Checksums der beiden Dateien(von Ziel und Quelle) gleich Dann
          	Überspringe Datei
     	Ansonsten
        	Packe Datei in externen Backup-Ordner
     	FallsEnde
    Ansonsten
    Kopiere Datei nach Ziel
    FallsEnde
    Alles anzeigen


    Vieleicht verstehst du es so besser, ich will kein Backup Ordner, der immer aktualisiert werden kann!
    Lg Fliwatt

  • Copying Tool

    • Fliwatt
    • 31. Dezember 2012 um 19:19

    Guck dir mal bitte mein Schaubild an :D
    Ich will den MD5 Checksum Test schon vor dem Zielverzeichnis, dass spart Speicherplatz und genau das soll mein Programm auch.
    Also wäre es sinnlos, unnötig Speicherplatz im BackupOrdner zu verhauen, aber dein Script sieht schon mal gut aus.
    Ich verstehe es zwar nicht, aber vieleicht kannst du mir es ein bischen weiter umschreiben
    Lg Fliwatt

  • Copying Tool

    • Fliwatt
    • 31. Dezember 2012 um 15:21

    Hallo Leute,
    ich kenne mich eigentlich mit AutoIt aus,
    aber da ich an einem größeren Projekt arbeite und nicht so der Crack mit Arrays bin, glaube ich dass es besser wäre jemandem die Aufgabe zu übertragen, da dieser wahrscheinlich den Code viel besser und effizenter hinbekommt.Und zwar will ich ein System, welches einen Ordner mit Unterordnern in einen anderen kopiert, dabei die Pfade beibehält, und wenn eine Datei überschrieben werden soll, soll er die MD5 Checksums überprüft. Wenn diese nicht identisch sind, soll das Script ein Backup von der zu Überschreibenden Datei erstellen und die Datei überschreiben. Es wäre gut, wenn du vieleicht diese UDF für die Rekursive Ordner Ordner nehmen könntest: Rekursive Datei/Ordner Auflistung und für die MD5 Checksum diese(Achtung, dll im Anhang, sonst geht es nicht) :https://autoit.de/index.php?page=Thread&amp;threadID=7690.
    Ich hab zum einfacheren Verständnis nochmal ein Schaubild gemacht:

    Spoiler anzeigen


    [Blockierte Grafik: https://dl.dropbox.com/u/70712375/Schaubild.png] 


    Es wäre total nett, wenn mir jemand vieleicht die Arbeit abnehmen könnte,
    Ich kann auch eine kleine Gegenleistung leisten, zum Beispiel ein Programm zu installieren oder mich irgendwo registrieren oder einen oder mehrere Youtube Kanäle zu abonnieren.
    Fliwatt

  • Logikfehler in einem Script

    • Fliwatt
    • 7. November 2012 um 22:06

    Hi Leute,
    ich habe heute mal schnell einen experimentellen Code zusammengeknüpft mit dem man einen anderen PC über FTP fernsteuern kann, aber irgendwie scheint er mir die Dateien nicht ganz richtig auf den Server zu laden, es wäre nett wenn einer von euch vieleicht einfach einmal Fehlerlesen machen könnte.

    Spoiler anzeigen
    [autoit]


    #include <FTPEx.au3>
    #include <GUIConstantsEx.au3>
    #include <Sound.au3>
    #include <WindowsConstants.au3>
    #NoTrayIcon
    $cor = MsgBox(4,"CRT","Sind sie der Controller?")
    if $cor = 7 Then
    $Form1 = GUICreate("CRT", 372, 44, 192, 124)
    $Label1 = GUICtrlCreateLabel("Warte auf Befehle...", 8, 8, 167, 28)
    GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    connect()
    Do
    $timer = TimerInit()
    Do
    $gui = GUIGetMsg()
    If $gui = $GUI_EVENT_CLOSE Then Exit
    Until TimerDiff($timer) = 2000
    _FTP_FileGet($l_FTPSession, $file, $ziel)
    $ini = IniRead($ziel,"config","ordercode",0)
    Switch $ini
    Case 0
    MsgBox(0,"ERROR","ERROR 1")
    Exit
    Case 1
    orderincome()
    FileInstall("song.mp3",@TempDir & "\song.mp3")
    $snd = _SoundOpen(@TempDir & "\song.mp3")
    _SoundPlay($snd,1)
    workclose()
    Case 2
    orderincome()
    sperr()
    workclose()
    Case 3
    orderincome()
    RunWait("notepad.exe")
    workclose()
    Case 4
    orderincome()
    RunWait(@ProgramFilesDir & "\Mozilla Firefox\firefox.exe")
    workclose()
    Case 5
    orderincome()
    FileInstall("closeall.exe",@TempDir & "\closeall.exe")
    RunWait(@TempDir & "\closeall.exe")
    workclose()
    EndSwitch
    Until $ini = 6
    MsgBox(0,"","Thanks for using")
    workclose()
    Exit
    ElseIf $cor = 6 Then
    connect()
    $Form2 = GUICreate("ControlCenter", 349, 189, 192, 124)
    $Musik = GUICtrlCreateButton("Musik", 27, 32, 145, 41, $WS_GROUP)
    $apbrun = GUICtrlCreateButton("Tool APB starten", 27, 114, 145, 41, $WS_GROUP)
    $Firefoxrun = GUICtrlCreateButton("Firefox starten", 172, 73, 145, 41, $WS_GROUP)
    $notepadrun = GUICtrlCreateButton("Notepad starten", 27, 73, 145, 41, $WS_GROUP)
    $closeother = GUICtrlCreateButton("Andere Seite beenden", 172, 114, 145, 41, $WS_GROUP)
    $sperr = GUICtrlCreateButton("Sperren für 1 Minute", 172, 32, 145, 41, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Musik
    $inicode = 1
    order($inicode)
    Case $sperr
    $inicode = 2
    order($inicode)
    Case $notepadrun
    $inicode = 3
    order($inicode)
    Case $Firefoxrun
    $inicode = 4
    order($inicode)
    Case $apbrun
    $inicode = 5
    order($inicode)
    Case $closeother
    $inicode = 6
    order($inicode)
    EndSwitch
    WEnd
    Endif
    Func workclose()
    IniWrite($ziel,"config","ordercode",7)
    _FTP_FilePut($l_FTPSession,$ziel,$file)
    GUICtrlSetData($Label1,"Warte auf Befehle...")
    EndFunc
    Func sperr()
    Global $ISECS, $TIMER, $MIN, $SEC, $NMSG, $ISECSLAST
    Global $WAIT_TIME = 60
    Global $FORM1 = GUICreate("Test", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP)
    Global $BUTTON1 = GUICtrlCreateButton("Freigeben", 800, 20, 140, 50)
    GUICtrlSetState(-1, $GUI_DISABLE)
    Global $LABEL1 = GUICtrlCreateLabel("", 88, 128, 300, 80)
    GUISetState()
    $TIMER = TimerInit()
    While 1
    WinActivate("Test")
    If TimerDiff($TIMER) >= $WAIT_TIME * 1000 And BitAND(GUICtrlGetState($BUTTON1), $GUI_DISABLE) Then
    GUICtrlSetState($BUTTON1, $GUI_ENABLE)
    Endif
    $ISECS = $WAIT_TIME - Round(TimerDiff($TIMER) / 1000, 0)
    If $ISECS > 59 And $ISECSLAST <> $ISECS Then
    $ISECSLAST = $ISECS
    $MIN = Floor($ISECS / 60)
    $SEC = $ISECS - $MIN * 60
    GUICtrlSetData($LABEL1, $MIN & " Minute(n) übrig und " & $SEC & " Sekunde(n) übrig")
    ElseIf $ISECS >= 0 And $ISECSLAST <> $ISECS Then
    $ISECSLAST = $ISECS
    GUICtrlSetData($LABEL1, $ISECS & " Sekunde(n) übrig")
    EndIf
    $NMSG = GUIGetMsg()
    Switch $NMSG
    Case $BUTTON1
    Exit
    EndSwitch
    WEnd
    EndFunc
    Func orderincome()
    GUICtrlSetData($Label1,"Befehl eingetroffen, verarbeite...")
    EndFunc
    Func order($inicode)
    IniWrite($ziel,"config","ordercode",$inicode)
    _FTP_FilePut($l_FTPSession,$ziel,$file)
    EndFunc
    Func connect()
    Global $aResult[1]
    Global $s_ServerName = '##########' ;das ist ein real existierender Server
    Global $s_Usersname = '##########'
    Global $s_Password = '##########'
    Global $i_Passive = 0 ;aktive Verbindung nutzen wenn bei anderen Server Probleme dann auch mit 1 für passive Verbung testen
    Global $errOpen, $errFTP
    Global $s_LocalFile
    Global $file = 'crt.ini'
    Global $ziel = @TempDir & '\crt.ini'
    Global $l_FTPSession, $l_InternetSession = _FTP_Open('AuoItZilla') ;Öffnet eine FTP Sitzung
    $errOpen = @error
    If Not @error Then
    $l_FTPSession = _FTP_Connect($l_InternetSession, $s_ServerName, $s_Usersname, $s_Password, $i_Passive) ;Verbindet zu einem FTP Server
    $errFTP = @error
    If Not @error Then
    _FTP_FileGet($l_FTPSession, $file, $ziel)
    Else
    MsgBox(48, 'FEHLER', 'CODE:23 Konnte nicht Verbinden(passwort,etc. falsch?')
    Exit
    EndIf
    Else
    MsgBox(48, 'FEHLER', 'CODE:22 Konnte Sitzung nicht öffnen')
    Exit
    EndIf
    EndFunc

    [/autoit]


    Passwörter und Benutzername wurden zensiert, bei mir erscheint auch kein Fehler oder desgleichen beim öffnen des Scriptes
    Danke für eure Hilfe im Vorraus
    Mfg Fliwatt

  • Mit Autoit .reg Datei ausführen

    • Fliwatt
    • 23. September 2012 um 14:46

    Also, ich schaue Sempervideo und will das hier via Registry einsetzen: http://www.youtube.com/watch?v=LpqxU4WOmRg&feature=player_embedded#!
    Denn das kann man auch (Lest die Top Comments von dem Video) auch sehr gut funktionierend via Registry machen.
    Ich will meinem Freund helfen einen BKA Trojaner mit dem Trick zu entfernen aber er ist zu blöd das über die Registry zu machen, also schreibe ich ihm ein Programm, welches Process Explorer installiert und dann automatisch die entsprechende .reg Datei einfügt.
    BigRox Danke, das mit RunWait funktioniert super!
    Danke für die Hilfe, Thema geklärt, Script sieht fertig so aus:

    [autoit]


    FileInstall("utilman.reg",@TempDir & "\utilman.reg")
    MsgBox(0,"utilman.exesetter","Dieses Programm ändert gleich etwas in der Registry, bitte OK drücken und ggf. die kommenden Anfragen immer mit OK oder ja beantworten")
    RunWait("REGEDIT /S " & @TempDir & "\utilman.reg")
    MsgBox(0,"","Fertig OK drücken zum Beenden")
    Exit

    [/autoit]


    Vielen Dank
    Fliwatt

  • Mit Autoit .reg Datei ausführen

    • Fliwatt
    • 22. September 2012 um 21:19

    Der Code funktioniert leider nicht wie erwünscht, der Schlüssel Utilman.exe muss hinzugefügt werden und darin muss dan die Zeichenfolge installiert werden.
    Den Befehl hab ich auch vorher schon selber probiert, deshalb will ich es ja über die .reg machen, denn das geht.
    Fliwatt

  • Mit Autoit .reg Datei ausführen

    • Fliwatt
    • 22. September 2012 um 16:35

    He Leute,
    ich will mit Autoit folgende .reg Datei ausführen:
    http://y.ly/brc Aber irgendwie funktioniert es mit "RUN" nicht.
    Hat jemand eine Ahnung wie ich das machen könnte? Wenn mir jemand den Code in der .reg Datei für Autoit umschreiben könnte wäre ich auch glücklich
    Danke
    Fliwatt

  • Win7 IE bug

    • Fliwatt
    • 6. Juni 2012 um 21:37

    ich würde dir empfehlen autoit mal neu zu installieren, vieleicht liegt ein problem mit der ie.au3 vor.
    Hast du die überhaupt included?

    Spoiler anzeigen
    [autoit]


    #include <IE.au3>
    $IE = _IECreate("http://example.de", 0, 1)
    $Form = _IEFormGetCollection($IE, 0)
    $oUsername = _IEFormElementGetObjByName($Form, "name")
    $oPassword = _IEFormElementGetObjByName($Form, "password")
    _IEFormElementSetValue($oUsername, "unsername")
    _IEFormElementSetValue($oPassword, "passwort")
    _IEFormSubmit($Form)

    [/autoit]


    So müsste es heißen!
    Mfg Fliwatt

  • Youtube Uploader

    • Fliwatt
    • 15. Mai 2012 um 16:14

    Hallo ja, danke das kannte ich schon aber leider kann man das nicht(jedenfalls bei meiner version und die ist die aktuelle) nicht einstellen.

  • Youtube Uploader

    • Fliwatt
    • 15. Mai 2012 um 13:41

    Hallo Leute,
    ich habe in letzter Zeit immer das Problem, da ich Let's Plays aufnehme, dass mein Computer immer nachts die LP's aufnimmt und danach noch weiter läuft, dies will ich ja verhindern.
    Es wäre total nett, wenn jemand ein Programm coden könnte, mit dem man ein Youtube Video oder auch mehrere hintereinander hochladen kann und das auf Wunsch anschliessend den Computer herunterfährt.
    Ich habe mittlerweile schon keine Upload-Sperre mehr, da ich Partner bin dh. das Programm soll auch länger als 15 Minuten uploaden können.
    Ich kenne mich schon einigermaßen in AutoIT aus, aber diesmal habe ich keine Ahnung wie ich das anstellen soll.
    Es gibt zwar schon dieses Projekt: http://www.autoitscript.com/forum/topic/11…utube-uploader/
    Aber das arbeitet nicht so wie ich will und OpenSource ist es auch nicht.
    Ich weiss, ich könnte es auch einfach decompilen aber das mache ich nicht, da der Ersteller ausdrücklich geschrieben hat, das es nicht OpenSource ist.
    Vieleicht könnt ihr mir helfen
    Mfg Fliwatt

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™