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. SOLVE-SMART

Beiträge von SOLVE-SMART

  • AutoIt "Hackathon" 2025 #1: gemütlich quatschen & gemeinsam kleine programatische Aufgaben lösen

    • SOLVE-SMART
    • 27. März 2025 um 13:28

    Hi zusammen 👋 ,

    der gute Schnuffel hat den Vorschlag gebracht einen kleinen Contest (Hackathon) durchzuführen.

    Zitat von @Schnuffel

    ... feste Startzeit, jeder kann mitmachen wer zuerst löst gewinnt ...

    Hierbei gibt es verschiedene Ansätze, wie so etwas ablaufen kann. Seid bitte beruhigt, es würde eine recht "gemütliche Nummer" werden, wenn genügend Leute zusammenkommen und mitmachen möchten. Auch wird hier nicht von mehreren Tagen, wie bei klassischen Hackathons in der Softwareentwicklung, gesprochen sondern eher von wenigen Stunden ⏰ .

    Einen ersten Terminplanungsversuch gibt es bereits durch AspirinJunkie:
    Umfrage hier entlang 👉 https://dud-poll.inf.tu-dresden.de/autoithackathon/ (Zeiten und Tage können verändert werden).

    1️⃣. Habt ihr Lust, Zeit und könnt euch sowas vorstellen?

    Zitat von @AspirinJunkie

    Also alle sitzen gemeinsam in einer Webkonferenz während alle versuchen das Problem zu lösen während sie dünnes quatschen miteinander? Klingt spaßig..

    2️⃣. Wenn ihr 1. mit ja beantwortet, dann tragt euch bitte in die Umfrage ein.

    3️⃣. Was haltet ihr davon, den Discord Server zu nutzen, um dort per Talk/Voice miteinander zu quatschen, während man sich kleinen Aufgabenstellungen bzgl. AutoIt widmet?

    4️⃣. Bedarf es einem Moderator der durch den Mini-Hackathon führt 🤔 oder soll es sich einfach entwickeln und wir schauen wie es läuft?

    Falls ihr zum angegebenen Termin nicht teilnehmen könnt, don't worry ... sowas kann man auch gern öfter machen.

    Ich freue mich darauf, dass ihr hier fleißig Meinungen und Kommentare abgebt, happy coding 🔮 .

    Viele Grüße
    Sven

  • Firefox 136.0.1 mit Access VBA automatisieren

    • SOLVE-SMART
    • 25. März 2025 um 10:39

    Super, genau so machen wir's Joachim. Das GitHub Projekt von mir ist ggf. etwas fortgeschrittener, zumindest wenn du gerade erst mit AutoIt beginnst - also lass dich bitte nicht erschlagen von den vielen Dateien im Projekt.

    Am Ende ist der Anteil der Browser Automatisierung ja sehr klein, sodass wir auch einfach 'ne Exe daraus machen können mit paar Konfigurationsoptionen von außen.
    Damit du nicht durch das ganze Projekt durchsteigen musst.

    Also bis später dann auf Discord Joachim 🤝 .

    Viele Grüße
    Sven

  • Firefox 136.0.1 mit Access VBA automatisieren

    • SOLVE-SMART
    • 24. März 2025 um 19:59

    Hi Joachim 👋 ,

    ich weiß nicht genau wie du nun auf die Erkenntnis kommst, dass du mit AutoIt den Firefox nicht automatisieren kannst, denn dies ist "relativ" einfach machbar.
    Für einen leichteren Einstieg mit dem WebDriver habe ich dieses Project/Repository angelegt: https://github.com/sven-seyfert/autoit-webdriver-boilerplate.

    Das deine Recherchen nicht so erfolgreich waren hängt vielleicht einfach damit zusammen, dass AutoIt nicht out-of-the-box das WebDriver Protokoll unterstützt und dafür ursprünglich auch gar nicht gedacht war, doch es funktioniert gut (wenn man weiß wie - was ja mit allen Dingen so ist 😅).

    Doch dazu gern mehr später wenn du magst. Wie wäre es, da ich in deinem Screenshot des Browser sehe das du Discord nutzt, dass wir uns dort mal etwas synchroner austauschen oder sogar mal per Talk/Voice miteinander sprechen? Dann kann ich besser supporten.

    Tritt dem AutoIt Community Projects-Discord-Server bei!
    Your space to collaborate (in english or german) with other AutoIt enthusiast regarding shared projects and more. | 20 Mitglieder
    discord.gg

    Viele Grüße
    Sven

  • Firefox 136.0.1 mit Access VBA automatisieren

    • SOLVE-SMART
    • 19. März 2025 um 21:23

    Hi und Danke Joachim für die Informationen. Meine Fragenreihe ist noch nicht zu Ende, daher hier ein kleines Video wie ich dich bisher verstanden habe sowie mit einigen weiteren Fragen.

    https://sven-seyfert.de/downloads/2025-03-19-generate-flight-browser-automation-questions.mp4

    Danach sind wir sicherlich soweit, dass wir in die Umsetzung gehen können.

    Viele Grüße
    Sven

    Update1:
    Im Video habe ich erwähnt, dass ich mal schaue ob eine API genutzt werden kann, damit die Flüge generiert werden. Im Prinzip ja, jedoch nicht ohne "active subscription". Das heißt ich könnte das bei mir nicht so einfach aufbereiten/vorbereiten/nachstellen, da ich kein kostenpflichtiges Abo einrichten werde. Habe zwar einen Demo-Account für mich gemacht, aber die freie Variante - da geht das mit API Nutzung so nicht.

  • Firefox 136.0.1 mit Access VBA automatisieren

    • SOLVE-SMART
    • 19. März 2025 um 16:00
    Zitat von A350Pilot

    ich bin für mehrere Airlines tätig und muss daher spezifische Daten aus der DB an FF weitergeben

    Zitat von A350Pilot

    Am Rande erwähnen möchte ich, dass es sich hier nicht um ein kommerzielles, sondern um ein rein privates Projekt handelt

    Du bist für mehrere Airlines tätig, hast hier aber ein privates Projekt? Verstehe ich nicht 🤔 . Ist aber auch nicht so entscheidend.

    Zitat von A350Pilot

    3 - Die Daten beziehe ich aus einer Tabelle in Access. Es geht hier um exakt einen Datensatz

    Geht es hier um eine einmalige Sache? Sicherlich nicht oder, denn ansonsten kannst du es ja manuell eintragen und fertig. Es geht um einen Datensatz? Wie häufig ändert sich dieser Datensatz oder sind es mehrere Access Datenbanken mit jeweils einen Datensatz oder wie muss ich mir das vorstellen?

    Zitat von A350Pilot

    4 - Diese Ausführungen verstehe ich leider nicht.

    Du möchtest in VB Selenium nutzen um mit dem WireProtocol (WebDriver) zu arbeiten. In AutoIt ist es aber "au3WebDriver" und funktioniert nahezu identisch wie Selenium aber nicht ganz. Daher der Hinweis, aber auch nicht so wichtig.

    Zitat von A350Pilot

    Access ist das führende Datensystem

    Eigentlich ist hier nur die Frage was das genau bedeutet. Denn ob nun AutoIt, VB oder node.js etc. auf die AccessDB zugreift und den Datensatz holt um dann auf der Webseite aktiv zu werden ist völlig egal. Daher interessiert mich eher wie du konkret mit der AccessDB umgehst? Wir reden doch von einer "Microsoft Access Datenbank" oder?

    Wie oft musst du noch weitere Aktionen auf der Seite durchführen? Denn falls es nichts anderes ist, gibt es auch noch Alternativen (mehr oder minder elgant, aber es gäbe sie).

    Viele Grüße
    Sven

  • Firefox 136.0.1 mit Access VBA automatisieren

    • SOLVE-SMART
    • 19. März 2025 um 12:19

    Oha, ich habe diverse Fragen Joachim:

    1. Sind die Screenshots und die Einschätzungen der XPaths (1) bis (5) korrekt? Habe ich dich richtig verstanden?
    2. Bist du an VBA bzw. VBScript gebunden oder kannst du auch mit AutoIt etwas anfangen?
    3. Woher beziehst du deine Daten? Also wie oft willst am Ende "Generate Flight" abschicken?
      Geht es hier um einen Datensatz oder um 10 oder um 100-500?
    4. Ich denke du hast auch etwas vermischt (oder ich habe dich falsch verstanden), das WebDriver (Browser Automatisierung) und Public drv As FirefoxDriver sicherlich zwei unterschiedliche Dinge sind. Zumindest das AutoIt Projekt "au3WebDriver" was das WebDriver Protokoll nutzt, ist nicht das Gleiche wie dein drv.
    5. Beschreibe nochmal bitte dein Gesamtziel, damit ich oder andere hier, ggf. eine Empfehlung zu Alternativen aussprechen kann.
      Was ich meine ist, vielleicht stellt sich ja auch heraus das man per API einen Flug buchen kann (HTML requests <==> responses) und dann musst du gar nicht über den Browser gehen.

    Viele Grüße
    Sven

  • Firefox 136.0.1 mit Access VBA automatisieren

    • SOLVE-SMART
    • 19. März 2025 um 11:38

    (1) XPath selector: //input[@id="orig"]
    (2) XPath selector: //input[@id="dest"]
    (3) XPath selector: //select[@id="basetype"]/option[text()="..."] ... durch bspw. "A225 - Antonov AN-225" ersetzen (also dynamisch durch deine Infos aus der AccessDB).
    (4) XPath selector: //select[@id="type"]/option[text()="..."] ... wie bei 3. bspw. mit "iniBuilds (MSFS) - An-225" ersetzen
    (5) XPath selector: //div[@id="options-generate"]

    Viele Grüße
    Sven

  • Firefox 136.0.1 mit Access VBA automatisieren

    • SOLVE-SMART
    • 19. März 2025 um 11:28

    Du meinst sicherlich diese vier - (1) bis (4) - Input bzw. Dropdown Elemente?
    Und wenn ausgefüllt dann Button (5), richtig?

    Viele Grüße
    Sven

  • Firefox 136.0.1 mit Access VBA automatisieren

    • SOLVE-SMART
    • 19. März 2025 um 10:53

    Hi A350Pilot , willkommen im Forum 👋 ,

    kannst du einen Test-Account für die Seite bereitstellen, den wir Helfenden benutzen können um dir zu helfen?
    Denn wenn wir nicht an die Seite die du geteilt hast herankommen, kann auch der XPath nicht ermittelt/geprüft etc. werden.

    Viele Grüße
    Sven

  • Was ist eure Präferenz: "light mode" oder "dark mode" bei Software (egal ob Web oder Desktop)?

    • SOLVE-SMART
    • 14. März 2025 um 18:28

    Hi Andy 👋 , amüsant wie immer deine Beiträge zu lesen (meine ich positiv).

    Zitat von Andy

    kein einziges Printmedium/Buch ist lesbarer im Darkmode, mir zumindest ist auch nicht ein einziges relevantes bekannt!

    Keine mir bekannte Oberfläche einer Maschine im Produktionsbetrieb hat Darkmode, keine "Lichtwand" oder Werbetafel benutzt Darkmode. Schon mal eine professionelle Präsentation im Darkmode gesehen?!

    Davon stimmt vieles, doch auch solche Medien/Produkte/Objekte gibt es im Dark Mode, doch deutlich weniger vertreten als Light Mode, absolut richtig.
    Allerdings bin ich nicht sicher ob du damit Äpfel mit Birnen vergleichst, doch am Ende egal.

    Zitat von Andy

    Jetzt die Frage an die Gemeinde: Wird der Darkmode bei VSCode nur genutzt/geschätzt, weil der Lightmode dermaßen mies ist? Wäre zumindest mal nachfragewürdig.

    😂 ... schwer zu beantworten, ich denke nein. Ohne zu viel von VSCode sprechen zu wollen, denn es gibt natürlich weitere Beispiele. VSCode hat neben den 10+ Standard Themes gefühlt unendlich viele (teils auch sehr gute) Theme Extensions anzubieten, welche man nutzen kann. Es ist u.a. eine Frage des Geschmacks sowie des Gefühls wenn man vom Monitor angeleuchtet wird oder eben nicht (subjektiv ich weiß 😅).

    ------------------

    Die bisherige Abstimmung zeigt zumindest eine gewisse Unentschlossenheit - bin froh das ich "mal so, mal so" mit zur Auswahl gestellt habe. Wenn ich mal mit UIs arbeiten muss, dann implementiere ich i.d.R. sowieso beide Modi, damit geswitched werden kann. Doch mit welchem Modus man seine Anwendung zu Beginn starten lässt, dafür ist dies hier ganz gut.

    Natürlich habe ich im Internet im Vorfeld einige kleinere Debatten zu dieser Frage bereits gelesen. Auch habe ich mit zwei von unseren UX-Designern mal dazu gequatscht. Die Meinungen gehen auseinander, finde ich faszinierend 😆 .

    ------------------

    Danke für alle Beiträge bisher - bleibt fit und gesund.

    Viele Grüße
    Sven

  • Was ist eure Präferenz: "light mode" oder "dark mode" bei Software (egal ob Web oder Desktop)?

    • SOLVE-SMART
    • 13. März 2025 um 22:37

    Stimme euch beiden zu. Aus meiner Sicht ist gut gemachter Dark Mode mega angenehm. Mit gut gemacht meine ich, dass eben genau die border sich abheben - dezent aber immerhin gut erkennbar. VSCode ist nur ein Beispiel wie man das super umsetzen kann.

    Danke für eure Stimmen/Meinungen 😀 .

    Viele Grüße
    Sven

  • Was ist eure Präferenz: "light mode" oder "dark mode" bei Software (egal ob Web oder Desktop)?

    • SOLVE-SMART
    • 13. März 2025 um 20:33

    Hi zusammen 👋 ,

    der Titel sagt hoffentlich schon alles.
    Ich danke euch für die Teilnahme an dieser kleinen Umfrage 🤗 .

    Viele Grüße
    Sven

  • Festgelegten Ordner in den aktuell ausgewählten Ordner kopieren

    • SOLVE-SMART
    • 10. März 2025 um 08:19
    Zitat von Moombas

    Da habe ich seine Vorlage genommen: FileCopy($sourceFolder, $targetImFolder, 1) ; 1 = Überschreibe, wenn der Ordner bereits existiert
    Daher bin ich auch wegen dem Kommentar davon ausgegangen das es Überschreiben soll.

    Ah verstehe, alles klar Moombas 👌 . Dann war die Beschriebung im post #1 zum Code auf jeden Fall nicht passend diesbzgl., genau. Danke fürs aufgreifen.

    Zitat von Moombas

    das kopieren hatte ich dann nicht mehr geprüft

    Richtig, ich meinte auch hauptsächlich dies.

    Zitat von Moombas

    Dann brauch ich meins ja nicht weiter prüfen ;)

    Wie du möchtest, genau. Danke für dein Code-Beispiel dazu, da konnte ich in der "finalen" Version von mir einiges verwenden 😀 .

    Viele Grüße
    Sven

  • Festgelegten Ordner in den aktuell ausgewählten Ordner kopieren

    • SOLVE-SMART
    • 8. März 2025 um 21:21

    Mit diesem Skript o0Julia0o (Abwandlung von Moombas Vorschlag), kannst du deine Tastenkombi. (STRG+ALT+G im Moment) direkt im Ordner anwählen und es funktioniert. Du musst nicht wie in der anderen Variante von mir, den Zielordner anklicken sondern einfach darin sein und los geht's.

    AutoIt
    #AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7
    #AutoIt3Wrapper_AU3Check_Stop_OnWarning=y
    #AutoIt3Wrapper_Outfile_x64=my-robocopy-action.exe
    
    HotKeySet('^!g', '_Copy')
    HotKeySet('{ESC}', '_Exit')
    
    While True
        Sleep(100)
    WEnd
    
    Func _Exit()
        Exit
    EndFunc
    
    Func _Copy()
        Local Const $iErrorIcon      = 16
        Local Const $iInfoIcon       = 64
        Local Const $iArrayMatchFlag = 1
    
        Local Const $sSourceFolder = 'C:\tmp\source-folder\Info\#Im'
        Local Const $aFolderMatch  = StringRegExp($sSourceFolder, '([^\\]+)$', $iArrayMatchFlag)
        If @error Or Not IsArray($aFolderMatch) Then
            MsgBox($iErrorIcon, 'Error', 'Oops! Check source folder path and RegEx pattern.')
            _Exit()
        EndIf
    
        Local Const $sFolder = $aFolderMatch[0]
    
        ; Assumption: You have opened your target folder
        ; via Windows Explorer.
        Local $sTargetFolder = _GetWindowsExplorerFolderPath()
        If @error Then
            MsgBox($iErrorIcon, 'Error', 'Error code: ' & @error)
            _Exit()
        EndIf
        If $sTargetFolder == '' Or StringRegExp($sTargetFolder, '[a-z|A-Z]:\\') == 0 Then
            MsgBox($iErrorIcon, 'Error', 'Oops! Unexpected target folder path structure.')
            _Exit()
        EndIf
    
        ; Robocopy copies without overwriting
        Run(StringFormat('robocopy "%s" "%s" /E /XO', $sSourceFolder, $sTargetFolder & '\' & $sFolder), '', @SW_HIDE)
        If @error Then
            MsgBox($iErrorIcon, 'Error', 'Oops! Robocopy Run() was not okay.')
            _Exit()
        EndIf
    
        Local Const $iTimeout = 30
        MsgBox($iInfoIcon, 'Done', 'Copy action completed.', $iTimeout)
    EndFunc
    
    Func _GetWindowsExplorerFolderPath()
        Local Const $oShell = ObjCreate('Shell.Application')
        If @error Then
            Return SetError(1)
        EndIf
    
        Local Const $hActiveWindows = WinGetHandle('[ACTIVE]')
        If @error Then
            Return SetError(2)
        EndIf
    
        For $oWindow In $oShell.Windows
            If $oWindow.HWND <> $hActiveWindows Then
                ContinueLoop
            EndIf
    
            Return $oWindow.document.Folder.Self.Path
        Next
    
        Return SetError(3)
    EndFunc
    Alles anzeigen

    💡 Ich habe nun auch die ConsoleWrite() Aufrufe durch MsgBox() Aufrufe ersetzt, weil du schriebst du wirst das kleine Tool (Skript/Programm) als *.exe kompilieren.

    ----------------------------

    Nichts destotrotz könnte ich mir vorstellen, dass du weitere Fragen haben wirst, daher meine Empfehlung: Discord Server und somit Live Hilfe (wenn man eine Zeit entsprechend ausmacht).

    Viele Grüße
    Sven

  • Festgelegten Ordner in den aktuell ausgewählten Ordner kopieren

    • SOLVE-SMART
    • 8. März 2025 um 12:15
    Tritt dem AutoIt Community Projects-Discord-Server bei!
    Your space to collaborate (in english or german) with other AutoIt enthusiast regarding shared projects and more. | 20 Mitglieder
    discord.gg

    Komme gern auf den Discord Server, denn da könnte ich per Audio-Call oder sogar per Video-Call einfacher erklären was du tun müsstest damit es so klappt wie du es dir erhoffst.

    Es ist zwar alles bereits da (hier geschrieben/vorgeschlagen worden), doch du stehst mit AutoIt noch recht am Anfang, habe ich das Gefühl o0Julia0o .

  • Festgelegten Ordner in den aktuell ausgewählten Ordner kopieren

    • SOLVE-SMART
    • 8. März 2025 um 12:10

    Nein, so wie im Erklärvideo gezeigt und gesagt: meine Variante funktioniert nur, wenn du einen Ordner angeklickt hast und dann die Tastenkombi. drückst. Es wird dann der Ordner Pfad in die Zwischenablage kopiert und dann läuft alles super.

    Das es bei dir gestern einmal geklappt hat, als du einfach im Ordner auf eine Freifläche geklickt hast liegt mit Sicherheit daran, dass der Ordnerpfad noch in der Zwischenablage war und es daher zufällig geklappt hat.

    Daher schrieb ich auch schaue dir bitte die beiden anderen Vorschläge an, denn da wird der Ordnerpfad anders ermitteln.

    Viele Grüße
    Sven

  • Festgelegten Ordner in den aktuell ausgewählten Ordner kopieren

    • SOLVE-SMART
    • 7. März 2025 um 22:17

    Morgen oder am Montag gern mehr Details (zum Tooling usw.) - ich bin gleich offline.

    Auf deine Frage mit "im Ordner sein" und dann den HotKey auslösen:
    Schau dir bitte die Antworten von Moombas und AspirinJunkie an und versuche zu verstehen was getan wird. Ansonsten einfach weiter so - immer fragen 😅 .

    Viele Grüße
    Sven

  • Festgelegten Ordner in den aktuell ausgewählten Ordner kopieren

    • SOLVE-SMART
    • 7. März 2025 um 21:32

    o0Julia0o bitte schaue dir dies kurz an. Ich hoffe es ist verständlich und du kannst mich danach aufklären ob ich dich einfach falsch verstanden habe, wir aneinander vorbei reden/schreiben oder ob du es dir anders vorgestellt hast?

    🎬 Erklärungs-Video

    Danke und viele Grüße
    Sven

  • Festgelegten Ordner in den aktuell ausgewählten Ordner kopieren

    • SOLVE-SMART
    • 7. März 2025 um 15:59

    o0Julia0o im Skript von Moombas steht:

    AutoIt
    ; Setze den Hotkey Strg + G, da Strg+Alt+G bei mir nicht funktionierte
    HotKeySet('^g', "CopyFilesHotkey")

    ----------------------------

    Ansonsten: Wenn ich intensiver darüber nachdenken würde, würde ich es sehr wahrscheinlich anders machen 😅 . Doch du hast eine spezifischen Anforderung beschrieben, die nicht generisch sein muss (im Moment), daher folgt ein kleines Beispiel welches funktioniert.

    Doch zunächst zu deinen Ansatz Moombas :
    Ich habe ihn nur kurz getestet ohne zu analysieren und es klappt leider nicht. Es stimmt was mit FileCopy() nicht. Des Weiteren berücksichtigst du (glaube ich) nicht, dass die vorhandenen Dateien im Zielordner nicht überschrieben werden sollen. Wenn du allerdings die Flags dazu weg lässt, wird gar nichts kopiert. Teste gern mal ausführlich - gern auch mit dem Testdaten Skript von mir oben, wenn du magst.

    💡 Das folgende sollte dem entsprechen o0Julia0o wie du es beschrieben hast:

    AutoIt
    #AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7
    #AutoIt3Wrapper_AU3Check_Stop_OnWarning=y
    
    HotKeySet('^!g', '_Copy')
    HotKeySet('{ESC}', '_Exit')
    
    While True
        Sleep(100)
    WEnd
    
    Func _Exit()
        Exit
    EndFunc
    
    Func _Copy()
        ; Assumption: You clicked ones the target folder
        ; by mouse (on Windows Explorer).
        Send('^{c}')
    
        Local Const $sSourceFolder = 'C:\tmp\source-folder\Info\#Im'
        Local Const $aFolderMatch = StringRegExp($sSourceFolder, "([^\\]+)$", 1)
        If @error Or Not IsArray($aFolderMatch) Then
            ConsoleWrite('Oops! Handle this unexpected behavior.' & @CRLF)
            Return
        EndIf
    
        Local Const $sFolder = $aFolderMatch[0]
    
        Local $sTargetFolder = ClipGet()
        If $sTargetFolder == '' Or StringRegExp($sTargetFolder, '[a-z|A-Z]:\\') == 0 Then
            ConsoleWrite('Oops! Handle this unexpected behavior.' & @CRLF)
            Return
        EndIf
    
        $sTargetFolder = $sTargetFolder & '\' & $sFolder
    
        ConsoleWrite('Source: ' & $sSourceFolder & @CRLF)
        ConsoleWrite('Target: ' & $sTargetFolder & @CRLF)
    
        Run(StringFormat('robocopy "%s" "%s" /E /XO', $sSourceFolder, $sTargetFolder), '', @SW_HIDE)
        ConsoleWrite('Done!' & @CRLF)
    EndFunc
    Alles anzeigen

    Testing (reproduction steps):

    1. Führe das Testdaten-Skript (Ordner- und Dateistruktur erstellen) oben aus.
    2. Navigiere im Windows Explorer nach C:\tmp\target-folder\#Im\subfolder1.
    3. Bearbeite dort fileA.txt in dem du den "dummy content" einfach durch einen anderen Text ersetzt. Datei speichern.
    4. Navigiere im Windows Explorer nach C:\tmp\target-folder.
    5. Selektiere den Ordner mit einen Klick.
    6. Drücke Tastenkombi. STRG+ALT+G.
    7. Schaue dir den Ordner C:\tmp\target-folder\#Im genau an. Es sollten statt "3 Dateien, 2 Ordner" nun "9 Dateien, 2 Ordner" in den Ordnereigenschaften zu sehen sein.
    8. Schaue dir die bearbeitete Datei an, diese hat deinen neuen Text und wurde nicht überschrieben.

    Ich habe bewusst nicht mit FileCopy() gearbeitet, da es in keiner meiner Konstellationen für genau das beschriebene Szenario funktioniert hat. Auch DirCopy() half nicht. Somit bin ich auf's gute alte "robocopy" was seit Windows Vista (glaube ich) Standard ist, ausgewichen.

    Viele Grüße
    Sven

    ----------------------------

    Update1:
    Es wird bewusst kein intensives error handling gemacht und auch keine UNC-Pfade berücksichtigt (kleiner lieber "wink" an AspirinJunkie 😚 😂), da ich davon ausgehe, dass einmalig im Windows Explorer auf den Zielordner geklickt wird und dann der HotKey getriggert wird. Daher meine Einschätzung das es nicht generisch bzw. robuster sein muss.

    Update 2:
    Das man das Ergebnis von robocopy auswerten und ggf. berücksichtigen sollte (Fehler beim kopieren), wäre ein sinnvolles TODO 🤝 .

  • Festgelegten Ordner in den aktuell ausgewählten Ordner kopieren

    • SOLVE-SMART
    • 7. März 2025 um 01:38

    Um dein Szenario für mich und die anderen etwas besser nachzustellen und testen zu können, hier ein kleines Skript was eine ähnliche Ordnerstruktur mit dummy Daten/Dateien anlegt. Wenn wir von der gleichen Struktur ausgehen, wird es einfacher konkret darüber zu reden ob das finale Skript/Programm sich so verhält wie du es dir dann vorstellst.

    AutoIt
    #AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7
    #AutoIt3Wrapper_AU3Check_Stop_OnWarning=y
    
    _Main()
    
    Func _Main()
        _CreateTestFolderAndFileStructure()
    EndFunc
    
    Func _CreateTestFolderAndFileStructure()
        Local Const $sRootFolder = 'C:\tmp\'
        Local Const $aList[] = _
            [ _
                'source-folder\Info\#Im\file1.txt', _
                'source-folder\Info\#Im\file2.png', _
                'source-folder\Info\#Im\file3.mp3', _
                'source-folder\Info\#Im\subfolder1\fileA.txt', _
                'source-folder\Info\#Im\subfolder1\fileB.jpg', _
                'source-folder\Info\#Im\subfolder1\fileC.wav', _
                'source-folder\Info\#Im\subfolder1\subfolder2\fileD.xlsx', _
                'source-folder\Info\#Im\subfolder1\subfolder2\fileE.bmp', _
                'source-folder\Info\#Im\subfolder1\subfolder2\fileF.pdf', _
                'target-folder\#Im\file1.txt', _
                'target-folder\#Im\subfolder1\fileA.txt', _
                'target-folder\#Im\subfolder1\subfolder2\fileD.xlsx', _
                'target-folder\AAA.png', _
                'target-folder\subfolder1\BBB.jpg', _
                'target-folder\subfolder1\subfolder2\CCC.bmp' _
            ]
    
        For $sFile In $aList
            _CreateFile($sRootFolder & $sFile, 'dummy content')
            If @error Then
                ConsoleWrite(StringFormat( _
                    'Oops! Handle this unexpected behavior for file "%s"\n', $sFile))
            EndIf
        Next
    EndFunc
    
    Func _CreateFile($sFile, $sText)
        Local Const $iUtf8WithoutBomWriteCreateMode = 256 + 2 + 8
    
        Local $hFile = FileOpen($sFile, $iUtf8WithoutBomWriteCreateMode)
        If $hFile == -1 Then
            Return SetError(1)
        EndIf
    
        If FileWrite($hFile, $sText) == 0 Then
            Return SetError(1)
        EndIf
    
        FileClose($hFile)
    EndFunc
    Alles anzeigen

    Das Ergebnis sieht dann so aus:

    Code
    C:\tmp>tree /A /F
    Auflistung der Ordnerpfade für Volume System
    Volumeseriennummer : 00000128 DEC4:8BF9
    C:.
    +---source-folder
    |   \---Info
    |       \---#Im
    |           |   file1.txt
    |           |   file2.png
    |           |   file3.mp3
    |           |
    |           \---subfolder1
    |               |   fileA.txt
    |               |   fileB.jpg
    |               |   fileC.wav
    |               |
    |               \---subfolder2
    |                       fileD.xlsx
    |                       fileE.bmp
    |                       fileF.pdf
    |
    \---target-folder
        |   AAA.png
        |
        +---#Im
        |   |   file1.txt
        |   |
        |   \---subfolder1
        |       |   fileA.txt
        |       |
        |       \---subfolder2
        |               fileD.xlsx
        |
        \---subfolder1
            |   BBB.jpg
            |
            \---subfolder2
                    CCC.bmp
    Alles anzeigen

    Viele Grüße
    Sven

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™