Hi,
Exec(‚copy c:\datei.txt c:\datei.bak‘,’’);
Leider passiert nichts, gebe ich aber den Pfad zur Notepad.exe
ein dann starte er das Notepad nur mit dem Copy befehl will es
nicht klappen.
copy, dir, ren, usw. sind interne Befehle und
Notepad.exe, xcopy.exe, usw. sind externe Befehle!
Also Du musst die Internen Befehle über den Befehlsinterpreter
starten in MS-Win meist command.com bzw. cmd.exe
der Interpreter ist samt Pfad in der Umgebungsvariable ComSpec hinterlegt. (Bei XP ist es ComSpec=C:\WINDOWS\system32\cmd.exe)
Exec(GetEnv(‚ComSpec‘),’/C dir’);
Listet den Inhalt des aktuellen Verzeichnisses auf.
Exec(GetEnv(‚ComSpec‘),’/C copy c:\datei.txt c:\datei.bak’);
Mit copy hatte ich beim Test Probleme, als die datei.txt 0 Byte groß war.(warum das konnte ich nicht ganz klären, da es außerhalb des Pascal-Programms also auf der Kommandozeile funktioniert.)
Deswegen empfehle ich das ganze mit XCopy.exe zu machen
Exec(‚C:\WINDOWS\system32\xcopy.exe‘,‚c:\datei.txt c:*.bak‘);
Auch hierbei zeigte sich ein Problem beim testen, denn wenn statt c:*.bak c:\datei.bak benutzt wird fragt das Progi xcopy ob es sich um eine Datei oder um ein Verzeichnis sich handelt.
Konnte keinen xcopy Schalter finden der diese Abfrage deaktiviert.
(Wenn da einer was weiß hätte ich dazu gern eine Info.)
Wie oben angezeigt mit dem Platzhalterzeichen * funzt es!
Gibt es da was zu berücksichtigen?
Ja , ohne den Compilerschalter $M (Speicherbelegung) ging bei meinen tests auch nix!!!
Durch folgende Angabe in deinem Quellcode in der aller ersten Zeile
sollte es funzen:
{$M $4000,0,0} { 16K stack, no heap }
so nun viel Spass beim ausprobieren
MfG SpeedyEl
Link zum Quellcode:
http://freenet-homepage.de/SpeedyElektron/wewewa/exe…