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

Beiträge von sugus

  • Variable Buttons

    • sugus
    • 21. Februar 2022 um 19:55

    Neue Version siehe Post_1

  • Schreiben in Registry - kein Fehler, Eintrag wird erstellt, ist aber im Reg-Editor nicht sichtbar?

    • sugus
    • 20. Januar 2022 um 10:35
    Zitat von AspirinJunkie

    Es ist jedoch genau andersherum:

    HKLM\SOFTWARE ist der 64 Bit-Zweig
    HKLM\SOFTWARE\WOW6432Node ist der 32 Bit-Zweig

    Wusste ich auch nicht. Dachte auch das der zweig WOW6432Node ein 64 Bit ist.

    Habe wieder etwas dazugelernt.

  • Schreiben in Registry - kein Fehler, Eintrag wird erstellt, ist aber im Reg-Editor nicht sichtbar?

    • sugus
    • 20. Januar 2022 um 10:16

    Das mit dem lesen vom Schlüssel funktioniert bei mir.

    AutoIt
    $Var1 = RegRead("HKLM64\SOFTWARE\BugFix", "Test")
        MsgBox(0, "", $Var1)
  • Schreiben in Registry - kein Fehler, Eintrag wird erstellt, ist aber im Reg-Editor nicht sichtbar?

    • sugus
    • 20. Januar 2022 um 10:03

    Ich konnte deinen Fehler nachvolziehen.

    Nach dem HKLM noch die 64 einfühgen, dann sollte es gehen.

    AutoIt
    #RequireAdmin
    
    $iSucc = RegWrite('HKLM64\SOFTWARE\BugFix', 'Test', 'REG_SZ', 'Mein-Wert')
    MsgBox(0, 'RegWrite', "$iSucc --> " & $iSucc & @LF & "#Error:  " & @error)

    pasted-from-clipboard.png

  • Schreiben in Registry - kein Fehler, Eintrag wird erstellt, ist aber im Reg-Editor nicht sichtbar?

    • sugus
    • 20. Januar 2022 um 09:44

    Versuche mal ohne #RequireAdmin.

    Hatte das gleiche problem wenn ich es mit Admin ausführe beim angemeldeten User, wurde der eintrag nicht angelegt.

    Ohne Admin wurde es dann im key-Pfad angelegt.

  • AD Attribute

    • sugus
    • 14. Januar 2022 um 13:05

    Danke für eure Denkanstösse und der gute Link der mir weiter geholfen hat.

    Konnte es jetzt umsetzen und funktioniert.

    AutoIt
    Func _SucheStart() ;AD Suche
       $ReadTexBox = GUICtrlRead($ADuser) ; Text aus TextBox in Variable speichern
       If GUICtrlRead($ADuser) = "" Then ;Prüfen ob TextBox leer ist
          MsgBox(0,"Info..", "Bitte einen Text eingeben")
       Else
          _GUICtrlListView_DeleteAllItems($idListview) ;Alle alten Einträge in ListView Löschen
          Global $sOU = ""
          Global $sLDAPFilter = "(&(objectCategory=Person)(ANR=" & $ReadTexBox & "))" ;Use ANR (Ambiguous Name Resolution).
          Global $sDataToRetrieve = "DisplayName,initials,mail,telephoneNumber,Mobile,physicalDeliveryOfficeName" ;sAMAccountName,department,distinguishedName,Title
    
          _AD_Open()
          Global $aUserIDs = _AD_GetObjectsInOU($sOU, $sLDAPFilter, 2, $sDataToRetrieve, "displayName")
          If @error Then
             $sLDAPFilter = "(&(objectCategory=Person)(initials=" & $ReadTexBox & "))"
             $aUserIDs = _AD_GetObjectsInOU($sOU, $sLDAPFilter, 2, $sDataToRetrieve, "displayName")
             If @error Then
                $sLDAPFilter = "(&(objectCategory=Person)(Mobile=*" & $ReadTexBox & "))"
                $aUserIDs = _AD_GetObjectsInOU($sOU, $sLDAPFilter, 2, $sDataToRetrieve, "displayName")
                if @error Then
                   $sLDAPFilter = "(&(objectCategory=Person)(telephoneNumber=*" & $ReadTexBox & "))"
                   $aUserIDs = _AD_GetObjectsInOU($sOU, $sLDAPFilter, 2, $sDataToRetrieve, "displayName")
                   if @error Then
                      MsgBox(64, "Telefonbuch...", "Keine Übereinstimmung gefunden")
                   EndIf
                 EndIf
              EndIf
          EndIf
          _AD_Close()
    Alles anzeigen
  • AD Attribute

    • sugus
    • 14. Januar 2022 um 07:34

    Den benutzten LDAP-Filter ist der gleiche wie oben im CODE.

    Da ich beim Namens & Büro suche das Kürzel angezeigt bekomme, dachte ich sollte es ja auch für das Kürzel gehen.

    Im AD Register unter Allgemein / Büro wird die Tel.-Nr. Kurzwahlnummer hinterlegt und wenn ich nach Kürzwahl nummer suche wird mir auch das Kürzel angezeigt.


    @error Fehler nach Kürzel suche:

    3 - No records returned from Active Directory. $sFilter didn't return a record

    Ich habe es auch schon mit _AD_GetObjectAttribute von deiner UDF versucht. Aber mit initials findet gehts auch nicht.

    Vermutlich mache ich etwas falsch oder verstehe die ganze LDAP funktion nicht :rolleyes:

    Danke & Gruss

  • AD Attribute

    • sugus
    • 13. Januar 2022 um 15:58

    Ich arbeit schon mit deiner UDF und finde die sehr gut.

    Wenn mit dem Namen gesucht wird funktioniert ales bestenst, aber wenn ich nach dem Kürzel suche wird nichts gefunden.

    Es handelt sich hier um ein Telefonbuch für die Mitarbeiter.

    Hier noch ein kleiner Auschnid von dem Code:

    AutoIt
    Global $sOU = ""
    Global $sLDAPFilter = "(&(objectCategory=Person)(ANR=" & GUICtrlRead($ADuser) & "))" ;Use ANR (Ambiguous Name Resolution).
    Global $sDataToRetrieve = "DisplayName,initials,mail,telephoneNumber,Mobile,physicalDeliveryOfficeName" ;sAMAccountName,department,distinguishedName,Title
    
    _AD_Open()
    Global $aUserIDs = _AD_GetObjectsInOU($sOU, $sLDAPFilter, 2, $sDataToRetrieve, "displayName")
    If @error Then
        MsgBox(64, "Active Directory Functions", "No objects found")
    EndIf
    _AD_Close()
  • AD Attribute

    • sugus
    • 13. Januar 2022 um 13:50

    Hallo zusammen

    Ist es möglich im AD nur nach Attribut initials zu suchen wenn man den Namen vom User nicht weis?

    Gruss Roland

  • Variable Buttons

    • sugus
    • 27. Juni 2018 um 19:06

    Entschuldigung olfibits das ich mich erst jetzt melde.

    Danke für deinen Tipp. Schaue es an. :thumbup:

  • Variable Buttons

    • sugus
    • 22. Juni 2018 um 16:11

    Kleine Änderung siehe Post_1

  • YATZY

    • sugus
    • 21. Juni 2018 um 17:25

    Ich konnte nicht widerstehen und habe noch ein Würfelspiel erstellt.

    GUI Oberfläche von YATZY

    Würfel_GUI.jpg


    Jeder Würfel kann mit einem Klick auf das Würfel Image gehalten werden.

    Das heisst beim nächsten Wurf werden die Würfel nicht mit gewürfelt.

    Man kann zu jederzeit das Halten wieder herausnehmen.

    Halten.jpg


    Sobald man die beste Kombination erspielt hat, wird mit einem Klick auf das Input die Werte übernommen.

    Nach jedem Durchgang (3 Würfe) muss ein Input ausgewählt werden, auch wenn keine Kombination möglich ist.

    Es wird Automatisch 0 eingetragen wenn keine Kombination passt.


    Bei Spielende wird der Würfel Button als "Neues Spiel" angezeigt.

    Nach dem drücken wird automatisch der erste Wurf getätigt.

    Neues Spiel.jpg

    Viel Spass!

    Dateien

    Yatzy.zip 578,14 kB – 487 Downloads
  • Ein einfaches Würfelspiel

    • sugus
    • 11. Juni 2018 um 10:40

    Mann muss den Würfel Button im laufenden Spiel nur einmal drücken.

    Nach Auswahl der Buttons 1 bis 12 wird automatisch weiter gewürfelt bis "GAME OVER" erscheint, danach wird der Button wieder aktiviert.

    Wenn die MsgBox erscheint für die nächste Runde und man die bestätigt, wird auch wieder automatisch weiter gewürfelt.

  • Ein einfaches Würfelspiel

    • sugus
    • 8. Juni 2018 um 08:26

    Das mit dem JOKER kann ich verstehen :). Jetzt läuft alles nur noch über einen Button.

    Gruss Roland

  • Ein einfaches Würfelspiel

    • sugus
    • 4. Juni 2018 um 19:00

    Habe versucht die Anmerkungen einzubinden.

    Neue Version im Post_1

  • Ein einfaches Würfelspiel

    • sugus
    • 30. Mai 2018 um 11:03

    Hallo zusammen,

    Habe mal versucht ein Würfelspiel mit Autoit zu erstellen. Die Idee kam mir als ich das Spiel von alpines (Number Strike) spielte.

    Einige von euch kenne eventuell das Spiel schon (Shut the Box, Klappenspiel, Klappbrett oder Klappbox)


    Gui

    GUI.jpg


    Bsp. Bei einem Wurf von 3 + 5 kann der Button 3 oder 5 oder die Summe beider Würfel 8 gedrückt werden.

    Es kann immer nur ein Button ausgewählt werden.
    Wenn ein" JOKER" angezeigt wird, kann man über das Dropdown den ensprechenden Würfel auswählen.


    Um es ein bischen spannender zumachen?? Wird bei jedem Button der gedrückt wird eine Zufahlszahl von 10 bis 100 in 10ner schritten vergeben.

    Edit 04.06.2018 _V2:

    Der "JOKER" Würfel und die "Pfeile" können jetzt deaktiviert werden.

    Beim Würfeln habe ich es so gelöst, dass der Würfel Button das erste mal gedrückt werden muss und nach Asuwahl

    der Buttons 1 bis 12 dann automatisch weiter würfelt

    Edit 04.06.2018 _V3:

    Der New Game Button wurde entfernt.

    Nach dem Spielende muss nur noch der Würfel Button gedrückt werden um ein Neus Spiel zu starten.


    Wuerfeln_V3.zip


  • Vergleichen zweier Ordner & mit Robocopy abgleichen

    • sugus
    • 16. April 2018 um 10:13

    Sorry für die späte Rückmeldung, bin erst jetzt von den Ferien zurück gekommen und hatte keine Zeit nach zuschauen.

    @Racer

    Wenn ich wieder etwas Zeit habe, werde ich dein Vorschlag mit dem Fortschrittsbalken mal anschauen.

    @Peter S. Taler

    Beim Fehler muss ich mal prüfen, woran das liegen könnte. Hat vermutlich ein Zusammenhang mit dem leeren Ordner und Array.

    Vermutlich hätte ich das auch mit der Autoit Kopierroutine machen können. Müsste mal in der Hilfe Datei nachschauen was alles möglich währe.

    Bei Robocopy ist schon alles dabei und brauche dafür nur eine Programmierzeile.

  • Vergleichen zweier Ordner & mit Robocopy abgleichen

    • sugus
    • 5. April 2018 um 20:26

    Hallo zusammen

    Es würde mich freuen, wenn Ihr mal das Skript Testen könntet. Nur wer Lust und Laune hat.

    Ich Arbeite viel im gleichen Ordner und mache gelegentlich ein Backup von dem Ordner.

    Da ich nicht immer weis was im Kopie Ordner aktuell ist, vergleiche ich mit dem Skript zwei Ordner miteinander.

    In einem ListView wird die Abweichung vom Original zur Kopie aufgelistet und sehe welche Dateien noch nicht gesichert wurden.

    Mit dem Button Robocopy werden alle fehlenden Dateien in der Kopie ergänzt.

    Robocopy ist so eingestellt das keine Datein gelöscht werden, es wird nur kopiert.

    Habe versucht die Fehlerquellen abzufangen wenn man die Quelle mit dem Ziel versehentlich vertauscht.

    Bin mir aber nicht sicher ob die Lösung von mir korrekt ist.

    Bild.jpg

    Der Syntax Code wird nicht sauber angezeigt. Vermutlich habe ich zu lange Zeilen.

    AutoIt: OvDe.au3
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <FindFiles.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <GuiStatusBar.au3>
    #include <StaticConstants.au3>
    #include <Array.au3>
    #include <GuiImageList.au3>
    
    
    _Main()
    
    Func _Main()
        ;Initialize variables
        Global $dir ;Variable Folder Pfad
        Global $exStyles = BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES) ;ListViews Stile
        Global $Pfad_1, $Pfad_2 ;Ordner auswahl in Variable speichern
        Global $idListview
        Global $StatusBar1
        Global $FileList_1, $FileList_2 ; Variablen für Ordner durchsuchen "_FileListToArrayRec" Folder 1 & Folder 2
        Global $iIndex
        Global $hImage ; Variable Array vergleichen
        Global $Labinfo_1, $Labinfo_2 ;Ausgewählte Pfade in Label anzeigen
        Global $Copy_Btn ; Button für Robocopy
        Local $Icon1Pfad = @ScriptDir & "\Icons\Punkt2.ico"
        Local $Icon2Pfad = @ScriptDir & "\Icons\Punkt3.ico"
    
        ;------------------Create window
        $hGui = GUICreate("Ordner Vergleichen auf Dateiebene", 600, 745, -1, -1)
    
       ;------------------Create an Open Pfad 1 Button
        $Dir1_Btn = GUICtrlCreateButton("Ordner 1 auswählen (Original)", 27, 10, 250, 25)
        GUICtrlSetFont($Dir1_Btn, 11, "", "", "") ;font size
    
       ;------------------Create an Open Pfad 2 Button
        $Dir2_Btn = GUICtrlCreateButton("Ordner 2 auswählen (Kopie)", 27, 45, 250, 25)
        GUICtrlSetFont($Dir2_Btn, 11, "", "", "") ;font size
        GUICtrlSetState(-1, $GUI_DISABLE) ;Button Deaktivieren
    
       ;------------------Create an Open Folder Ordner 1 Button
        $FolderOpen_Btn = GUICtrlCreateButton("Dateipfad öffnen (Original)", 320, 10, 250, 25)
        GUICtrlSetFont($FolderOpen_Btn, 11, "", "", "") ;font size
    
       ;------------------Create an Copy_Btn Button
        $Copy_Btn = GUICtrlCreateButton("Mit ROBOCOPY abgleichen", 320, 45, 250, 25)
        GUICtrlSetFont($Copy_Btn, 11, "", "", "") ;font size
        GUICtrlSetState($Copy_Btn, $GUI_DISABLE) ;Button Deaktivieren
    
        ;------------------Create an Label-Pfad Ordner 1
        $Labpfad_1 = GUICtrlCreateLabel("Ordner 1: ", 27, 82, 550, 20)
        GUICtrlSetFont(-1, 10, "", "", "") ;font size
        GUICtrlSetColor($Labpfad_1, 0x0000FF) ;font farbe
    
        ;------------------Create an Label-Pfad Ordner 2
        $Labpfad_2 = GUICtrlCreateLabel("Ordner 2: ", 27, 105, 550, 20)
        GUICtrlSetFont(-1, 10, "", "", "") ;font size
        GUICtrlSetColor($Labpfad_2, 0xFF0000) ;font farbe
    
        ;------------------Create an ListView
        $idListview = GUICtrlCreateListView("", 25, 150, 550, 560) ;,$LVS_SORTDESCENDING)
        _GUICtrlListView_AddColumn($idListview, "", 20) ;Spalte 1
        _GUICtrlListView_AddColumn($idListview, "Dateien", 200) ;Spalte 2
        _GUICtrlListView_AddColumn($idListview, "Pfad (Original)", 550) ;Spalte 3
        _GUICtrlListView_SetExtendedListViewStyle($idListview, BitOR($exStyles, $LVS_EX_GRIDLINES)) ;listView Stile
    
        ;------------------Create an StatusBar
        $StatusBar1 = _GUICtrlStatusBar_Create($hGui) ;Statusbar generieren
        _GUICtrlStatusBar_SetMinHeight($StatusBar1, 20) ;Statusbar Höhe
        _GUICtrlStatusBar_SetParts($StatusBar1, 2, 250) ;Statusbar aufteilen
        _GUICtrlStatusBar_SetText($StatusBar1, "   Bereit   ") ;Text in Statusbar links
        _GUICtrlStatusBar_SetText($StatusBar1, "   Dateien in Ordner 1:   " & "                 Dateien in Ordner 2:   ", 1) ;Text in Statusbar rechts
    
        ;------------------Create an  Icon-Control
        $Icon1 = GUICtrlCreateIcon($Icon1Pfad, -1, 25, 125, 20, 20)
        $Icon2 = GUICtrlCreateIcon($Icon2Pfad, -1, 250, 125, 20, 20)
    
        ;------------------Create an Label Icon1-Control
        GUICtrlCreateLabel("In beiden Ordner vorhanden", 50, 127, 190, 20)
        GUICtrlSetFont(-1, 10, "", "", "") ;font size
    
        ;------------------Create an Label Icon2-Control
        GUICtrlCreateLabel("In Ordner 2 nicht vorhanden", 275, 127, 190, 20)
        GUICtrlSetFont(-1, 10, "", "", "") ;font size
    
    
        GUISetState(@SW_SHOW) ;Show window/Make the window visible
    
       ; Lädt die Bilder
       $hImage = _GUIImageList_Create(16, 16, 5, 3) ;ImageList generieren  Breite / Höhe / 5 = 32Bit / 1 - verwendet eine Maske & 2 - Bilder werden gespiegelt
       _GUIImageList_AddIcon($hImage, $Icon1Pfad) ;Gruen / Fügt ein Icon der Imagelist hinzu
       _GUIImageList_AddIcon($hImage, $Icon2Pfad); Rot   / Fügt ein Icon der Imagelist hinzu
    
        While 1
          Switch GUIGetMsg()
             Case $GUI_EVENT_CLOSE
                   GUIDelete() ;Destroy the GUI including the controls
                   _GUICtrlListView_UnRegisterSortCallBack($idListview);Deregistriert die Sortier-Callback Funktion
                   Exit
    
             Case $Dir1_Btn ;Ordner_1 Button
                _GUICtrlListView_DeleteAllItems($idListview) ;Alle einträge in ListView Löschen
                _GUICtrlStatusBar_SetText($StatusBar1, "Bearbeitung gestartet") ;Text in Statusbar links
                $dir = FileSelectFolder("Ordner auswählen","") ;Ordner auswahl starten
                $Pfad_1 = $dir & "\" ;Ausgewählten Pfad in eine Variable speichern
                If $dir = "" Then
                   GUICtrlSetState($Dir2_Btn, $GUI_DISABLE) ;Button Deaktivieren
                Else
                   GUICtrlSetState($Dir2_Btn, $GUI_ENABLE) ;Button Aktivieren
                   GUICtrlSetData($Labpfad_1, "Ordner_1:  " & $Pfad_1) ;Pfad an Label übergeben
                   GUICtrlSetTip($Labpfad_1, GUICtrlRead($Labpfad_1, 1))
                EndIf
    
             Case $Dir2_Btn ; Ordner_2 Button
                _GUICtrlListView_DeleteAllItems($idListview) ;Alle einträge in ListView Löschen
                $dir = FileSelectFolder("Ordner auswählen","") ;Ordner auswahl starten
                $Pfad_2 = $dir & "\" ; Ausgewählten Pfad in eine Variable speichern
                If $dir = "" Then
                Else
                   GUICtrlSetData($Labpfad_2, "Ordner_2:  " & $Pfad_2) ;;Pfad an Label übergeben
                   GUICtrlSetTip($Labpfad_2, GUICtrlRead($Labpfad_2, 1))
                   _Ordner1Array() ;In ausgewählten Ordner nach Dateien suchen
                EndIf
    
             Case $FolderOpen_Btn ;Button Pfad öffnen
                $LvAuswahl = _GUICtrlListView_GetSelectedIndices($idListview, True) ;Ausgewählte Zeile kompletten Text auslesen
                If $LvAuswahl[0] = "" Then ;Wenn keine auswahl vorhanden in ListView
                   MsgBox(0,"Info....", "Es wurde keine Zeile augewählt!")
                Else
                   $aLVPfad = _GUICtrlListView_GetItemText($idListView, $LvAuswahl[1], 2) ; Kompletter Text aus Spalte 3 ermitteln
                   $result = StringInStr($aLVPfad, "\", 0, -1) ; erstes zeichen "\" von rechts suchen in Text & Anzahl von Zeichen in Variable speichern
                   $sOpenPfad = StringLeft ($aLVPfad, $result) ; Gibt eine Anzahl von Zeichen, links ausgehend von dem String zurück
                   ShellExecute($sOpenPfad) ;Oeffnet den Pfad von ausgewähler Zeile in ListView
                EndIf
    
             Case $Copy_Btn
                #Region --- CodeWizard generated code Start ---
                ;MsgBox features: Title=Yes, Text=Yes, Buttons=Yes and No, Default Button=Second, Icon=Warning
                If Not IsDeclared("iMsgBoxAnswer") Then Local $iMsgBoxAnswer
                $iMsgBoxAnswer = MsgBox(324,"Robocopy...","Robocopy vergleicht Ordner_1 mit Ordner_2" & @CRLF & _
                   "und kopiert fehlende Dateien nach Ordner_2!" & @CRLF & @CRLF & _
                   "Robocopy ist so eingestellt, dass Dateien kopiert werden" & @CRLF & _
                   "aber keine Dateien gelöscht werden!" & @CRLF & @CRLF & _
                   "Eingesellte Parameter Robocopy:" & @CRLF & _
                   "/E /R:10 /W:1 /TEE /V /X /LOG: @ScriptDir & \RoboBackupLOG.txt"  & @CRLF & @CRLF & _
                   "/E    = Kopiert Unterverzeichnisse" & @CRLF & _
                   "/R:10    = Anzahl Wiederholungsversuchen" & @CRLF & _
                   "/W:1    = Wartezeit zwischen Wiederholungsversuchen in sek." & @CRLF & _
                   "/TEE    = Daten im Konsolenfenster in % anzeigen" & @CRLF & _
                   "/V    = Erstelt ein ausfuehrliches Log-File mit (errors)" & @CRLF & _
                   "/X    = Alle Daten werden im Log-File eingetragen" & @CRLF & @CRLF & _
                   "Bitte Start & Ziel Ordner überprüfen!" & @CRLF & @CRLF & _
                   "Start Ordner:  " & $Pfad_1 & @CRLF & "Ziel Ordner:  " & $Pfad_2)
                Select
                   Case $iMsgBoxAnswer = 6 ;Yes Button Click
                      $sP1 = StringTrimRight ($Pfad_1, 1) ;Ordner_1 Pfad Trimmen 1_Zeichen von rechts "\" für Robocopy
                      $sP2 = StringTrimRight ($Pfad_2, 1) ;Ordner_2 Pfad Trimmen 1_Zeichen von rechts "\" für Robocopy
                      $source   = '"' & $sP1 & '"' ;Pfad Ordner_1
                      $dest   = '"' & $sP2 & '"' ;Pfad Ordner_2
                      $log   = @ScriptDir & "\RoboBackupLOG.txt" ;Log File erstellen
    ;~                   MsgBox(0,"Kopieren", $source & "   " & $dest)
                      RunWait(@ComSpec & " /c ROBOCOPY " & $source & " " & $dest & " /E /R:10 /W:1 /TEE /V /X /LOG:" & '"' & $log & '"') ;Run RoboCopy
                      Sleep(2000) ; Warte 2 Sek.
                      _GUICtrlListView_BeginUpdate($idListView);ListView Aktuallisierung Stoppen
                      ProgressOn("Bitte warten...", "Ordner 2 neu einlesen", "") ;Progress Start
                      _Ordner2Array() ;Ordner_2 nochmals in die Array schreiben damit der Ordner Vergleich neu ausgefürt werden kann
                      GUICtrlSetState($Copy_Btn, $GUI_DISABLE) ;Button Deaktivieren
    
                   Case $iMsgBoxAnswer = 7 ;No
    
                EndSelect
                #EndRegion --- CodeWizard generated code End ---
    
    ;~             Case $idListview;Spalten sortieren
    ;~                _GUICtrlListView_RegisterSortCallBack($idListview);Registriert die "Simple Sort callback" Funktion
    ;~                _GUICtrlListView_SortItems($idListview, GUICtrlGetState($idListview));Startet die Sortier-Callback Funktion ListView
          EndSwitch
        WEnd
    
    EndFunc   ;==>_Main
    
    Func _Vergleich() ;Ordner vergleichen (in zwei Arrays)
       Local $z = 0 ;Wird benötigt für ListView Icon
    
       For $i = 1 To UBound($FileList_1) - 1 ;Anzahl einträge in Array ermitteln (Ordner_1)
          $iIndex = _ArraySearch($FileList_2, $FileList_1 [$i], 0, 0, 0, 0, 0, 0) ;In Array vom Ordner_1 in Ordner_2 vergleichen
    ;~       MsgBox(0,"",UBound ($FileList_1) -1)
          If @error = 6 Then ;Wird benötigt für ListView Icon. Bei jedem "@error = 6" wird die Variable um 1 erhöt & ein Rotes Icon gesetzt
             $z = $z + 1 ;Wird benötigt für ListView Icon
             _GUICtrlListView_SetImageList($idListview, $hImage, 1) ;Weist eine Imagelist einem Control zu
             _GUICtrlListView_SetItem($idListview, "   " & $i, $i - 1, 0, 1) ;Rotes Icon setzen in Spalte 1 wenn Datei in der Arrays von Ordner_2 nicht vorhanden ist
             _GUICtrlStatusBar_SetText($StatusBar1, "   Fehlende Datei(en) in Kopie:   " & $z) ;Text in Statubar links
    ;~         ConsoleWrite("Zeile " &  $iIndex & "=" & $FileList_1 [$i] & @crlf)
          Else
             _GUICtrlListView_SetImageList($idListview, $hImage, 1) ;Weist eine Imagelist einem Control zu
             _GUICtrlListView_SetItem($idListview, "   " & $i, $i - 1, 0, 0) ;Grünes Icon setzen in Spalte 1 wenn Datei in beiden Arrays vorkommt (Ordner_1 & Ordner_2)
          EndIf
          ProgressSet((100/$FileList_1[0]) * $i, $i & "  von  " & $FileList_1[0] & "  Dateien werden untersucht", "Vergleichen der Ordner") ;Progress aktuallisieren
       Next
    
       _GUICtrlListView_EndUpdate($idListView); ListView Aktuallisierung Starten
       Sleep(1000) ;Warten 1 Sek.
       ProgressOff() ;Progress auschalten
       If $FileList_1[0] = $z Then ;Wenn source(Ordner 1) = $z ($z = Fehlende Dateien in destinatoin(Ordner 2)
          MsgBox(32,"Info...","Im Destinations(Ordner 2) sind keine Dateien vorhanden die mit Source(Ordner 1) übereinstimmen!" & @CRLF & @CRLF & @CRLF & _
             "Bitte überprüfen Sie ob die richtigen Ordner Pfade ausgewält wurden!")
       Else
          If $z = 0 Then
             _GUICtrlStatusBar_SetText($StatusBar1, "   Fehlende Datei(en) in Kopie:   " & $z) ;Text in Statusbar links
             MsgBox(0,"Info...","Dateien von Original zur Kopie sind identisch.")
             GUICtrlSetState($Copy_Btn, $GUI_DISABLE) ;Button Deaktivieren
          Else
             MsgBox(0,"Info...","In Ordner_2 (Kopie) wurden Fehlende Datei(en) gefunden:   " & $z)
             GUICtrlSetState($Copy_Btn, $GUI_ENABLE) ;Button aktivieren
          EndIf
       EndIf
    EndFunc
    Alles anzeigen
    AutoIt: FileFind.au3
    #Include <File.au3>
    
    Func _Ordner1Array()
    ProgressOn("Bitte warten...", "Dateien werden gesucht", "") ;Progress Start
    $FileList_1 =_FileListToArrayRec($Pfad_1, "*", 1, 1) ;Alle Datein suchen von Ordner_1 & in Array schreiben
    ;~    _ArrayDisplay($FileList_1, "1D Anzeige")
    
       If @Error = 1 Then ;Wenn keine Datein gefunden
          ProgressOff() ;Progress ausschalten
            MsgBox (0,"","Keine Dateien gefunden in Ordner 1!")
       Else
          _GUICtrlListView_BeginUpdate($idListView);ListView Aktuallisierung Stoppen
          For $i = 1 to UBound($FileList_1) -1 ;Anzahl Index einträge in Array von Ordner_1
              ProgressSet((100/$FileList_1[0]) * $i, $i & "  von  " & $FileList_1[0], "Dateien von Ordner 1 einlesen") ;Progrssbar aktuallisieren
              $search = FileFindFirstFile($Pfad_1 & $FileList_1[$i]) ;Erzeugt ein Suchhandle
              $file = FileFindNextFile($search) ;Gibt den nächsten Dateinamen
              $PfadKomplet = $Pfad_1 & $FileList_1[$i] ;Kompletter Pfad ermitteln
              _GUICtrlListView_AddItem($idListview, "", 0) ;Spalte1 Icon
              _GUICtrlListView_AddSubItem($idListview, $i -1, $file, 1) ;Spalte2 Datei
              _GUICtrlListView_AddSubItem($idListview, $i -1, $PfadKomplet , 2) ;Spalte3 Pfad
          Next
          FileClose($search)
       EndIf
       _Ordner2Array()
    EndFunc
    
    Func _Ordner2Array()
    $FileList_2 =_FileListToArrayRec($Pfad_2, "*", 1, 1) ;Alle Datein suchen von Ordner_2 & in Array schreiben
    ;~    _ArrayDisplay($FileList_2, "1D Anzeige")
       If @Error = 1 Then ;Wenn keine Datein gefunden
          ProgressOff() ;Progress ausschalten
            MsgBox (0,"","Keine Dateien gefunden in Ordner 2!")
       Else
          For $i = 1 to UBound($FileList_2) -1 ;Anzahl Index einträge in Array von Ordner_2
              ProgressSet((100/$FileList_2[0]) * $i, $i & "  von  " & $FileList_2[0], "Dateien von Ordner 2 einlesen") ;Progrssbar aktuallisieren
              $search = FileFindFirstFile($Pfad_2 & $FileList_2[$i]) ;Erzeugt ein Suchhandle
              $file = FileFindNextFile($search) ;Gibt den nächsten Dateinamen
          Next
          _GUICtrlStatusBar_SetText($StatusBar1, "   Dateien in Ordner 1:   " & $FileList_1[0] & "                 Dateien in Ordner 2:   " & $FileList_2[0], 1) ;Text Statusbar rechts
          FileClose($search)
       EndIf
       If $FileList_1[0] < $FileList_2[0] Then ;Wenn in der destination(Ordner 2) mehr Dateien vorhanden sind als im source(Ordner 1)
          ProgressOff() ;Progress ausschalten
          MsgBox(32,"Info...","Im Destination(Ordner 2) sind mehr Dateien vorhanden als im Source(Ordner 1)!" & @CRLF & @CRLF & @CRLF & _
             "Bitte überprüfen Sie ob die richtigen Ordner Pfade ausgewält wurden!")
       Else
          _Vergleich() ;Vergleich starten der beiden Arrays von Ordner_1 & Ordner_2
       EndIf
    EndFunc
    Alles anzeigen

    Mir ist bewusst, dass ich auch alles mit Robocopy direkt machen könnte. Auf jeden fall wahr das für mich eine interessante Erfahrung.

    Trotzdem wäre es für mich hilfreich was ich besser machen könnte oder was ich eventuell falsch gemacht habe im Skript.

    Ich versuche das meiste immer selber zu lösen anhand der Hilfe von Autoit,

    ob wohl für mich in der Hilfe nicht immer alles verständlich ist.

    Mir fehlt auch die Erfahrung, da ich nur sporadisch mit Autoit programmiere.

    Ich bitte euch, ein Auge zuzudrücken bei meiner Rechtschreibung, ist nicht so meine Stärke.

    Gruss aus der Schweiz

    OvDe-GUI.zip

  • Checkbox im IE

    • sugus
    • 5. März 2018 um 14:37

    Nach etlichem suchen und Probieren konnte ich es selber Lösen.

    Mit diesem Satz hat dann alles funktioniert.

    _IEAction($o_form, "click")

    Spoiler anzeigen

    #include <IE.au3>

    Local $oIE = _IEcreate ("https://www.acronis.com/de-de/my/box/?s=1")

    ; Nun warten wir bis die Webseite vollständig geladen ist:

    _IELoadWait($oIE,0)

    Local $user_name = _IEGetObjByName ($oIE, "Email")

    Local $password = _IEGetObjByName ($oIE, "Pwd")

    Local $o_form = _IEGetObjByName($oIE, "Registred")

    _IEAction($o_form, "click")

    Sleep(1500)

    _IEFormElementSetValue ($user_name, "myname@Muster.com",0)

    _IEFormElementSetValue ($password, "1234567",0)

  • Checkbox im IE

    • sugus
    • 5. März 2018 um 11:08

    Ja habe ich auch schon Probiert. hat leider auch nicht funktioniert.

    Mit der error abfrage bekomme ich immer die 0 / 4 oder 7 zurück.

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™