For future reference, we figured out a solution. Deleting the executable file as it's running achieves the same goal.
Vincent At Tue, 03 Jul 2012 21:06:19 +0200, Maleval Sebastien wrote: > > Le 03/07/2012 18:53, Vincent St-Amour a écrit : > > At Tue, 03 Jul 2012 14:55:00 +0200, > > Maleval Sebastien wrote: > >> Hi, I'm trying to use file functions, and I asked myself if it was > >> possible to execute, and in the same time, write in a ".exe" file. > >> Someone know what function I must use for this ? > > As far as I know, Windows does not let you write in a running > > executable. > > > > Taking a step back, what are you tring to do? > > > > Vincent > > > > I try to file a corrupted file (or make it unusable - not readable) > during its execution. But I've always the same probleme. Windows does > not let me write. > Would there another solution? > > See my code : > > #lang racket > > (define f "file.exe") > (define listOfByte '()) > > (define (readByteOnFile fileName) > (call-with-input-file fileName > (lambda (p-in) > (define (iter) > (let ((x (read-byte p-in))) > (if (eof-object? x) > (void (set! listOfByte (reverse listOfByte))) > (begin > (set! listOfByte (cons x listOfByte)) > (iter))))) > (iter)))) > > (define (writeByteOnFile fileName L) > (port-try-file-lock? (open-output-file f #:exists 'replace) 'shared) > (call-with-output-file fileName > (lambda (p-out) > (define (iter L) > (if (empty? L) > (printf "Fini") > (begin > (write-byte (car L) p-out) > (iter (rest L))))) > (iter L)) > #:exists 'append)) > > (define (executeFile fileName) > (shell-execute "open" f "" (current-directory) 'sw_shownormal)) > > In the order I read Bytes, Execute file and error when writting random > Bytes (not in my code), I must find an other solution. > (writeByteOnFile fileName L) is function to re-create my file. > > ____________________ Racket Users list: http://lists.racket-lang.org/users

