Hallo liebe CX User
Ich habe in diesem Kontext ein wenig herumexperimentiert und es ist mir bis jetzt zumindest gelungen eine API Funktion (CopyFileExA-Funktion) aus der kernel32.dll zu lokalisieren,
die ev. das Potenzial hätte, eine Fortschrittsanzeige relativ genau mit verschiedenen Daten während eines Kopiervorgangs zu bedienen. Beigefügtes Skriptfragment schafft es, eine Datei zu kopieren und eine Funktion dabei aufzurufen und kehrt nach erfolgtem Kopiervorgang wieder ins Hauptprogramm zurück hier informiert die Variable [erg]=1 das der Kopiervorgang erfolgreich war. Leider wird diese Funktion nur einmal aufgerufen statt kontinuierlich und liefert nicht die erforderlichen Variablen zum auswerten.
Ich orientierte mich hierbei bei
Microsoft Learn
@lieber Stefan
Ich werde weiter forschen, da diese Funktionalität schon cool wäre.
cX4Web Code
Was ist das?
1 *** CopyFileExA
2 Anzeige-Fenster 'Anzeige-Fenster1', ID='Anzeige-Fenster1'
3
4 Setze in [PROGRESS_CONTINUE]: '0'
5 Setze in [PROGRESS_QUIET]: '3'
6 Setze in [COPY_FILE_ALLOW_DECRYPTED_DESTINATION]: '&H00000008'
7 Standard-Dialog 'Datei öffnen' in [dateien], Titel='Dateien auswählen', kein Stopp
8
9 Wenn (? '[dateien]<>'), ""
10 Standard-Dialog 'Ordner' in [ordnername], Titel='Ordnerauswahl', Vorgabe='[cX.Spezialverzeichnis(5)]', kein Stopp
11 Ende Wenn
12 Wenn (? '[ordnername]<>'), ""
13 Setze in [zieldatei]: '[ordnername][cX.Datei([dateien]).Dateiname]'
14 *** Hier wäre möglicherweise der Ansaztz für eine relativ genaue Fortschrittsanzeige beim kopieren
15 Setze in [erg]: '[cX.System.DLLAufruf(kernel32.dll;CopyFileExA;"[dateien]";"[zieldatei]";[cX.Funktion.kopierfortschritt];&H00000000;;[COP...'
16 Ende Wenn
17
18 Wenn (? '[erg]<>""'), ""
19 Setze in [cX.Anzeige(Anzeige-Fenster1).Titel]: 'Datei wurde kopiert'
20 Ende Wenn
...
cX4Web Code: Einfach anklicken zum Kopieren und in click.EXE 5.0 einfügen
(27 Zeilen, cX 5.0.10.5, Lizenz: Pro)
Wie gesagt, frei verwendbar und bei besonderem Lizenzerfordernis bitte im Volltestmodus ausführen.
Bitte um Eure geschätzte Meinung dazu
lg Christian