Batch u?żytkownika

0

Siema!
Piszę sobie program do robienia batchy (popularnych .bat'ów) i krótko mówiąc - mam problem :-)
Mianowicie: mam taki sobie kolorowy przycisk co się nazywa "Testuj", i nie wiem jak wygenerować samokasujący się plik .bat, który przed skasowaniem, robi wszystkie operacje, które są zapisane w memo...

krótko:
Po kliknięciu na przycisk "Testuj", program tworzy plik .bat z takimi liniami, jakie są w memo(1), dopisuje do niego linijki samodestrukcyjne (a raczej wywalające bat'a po zakończeniu pracy), uruchamia, a użytkownik cieszy oczy swoją aplikacją (?).

Mam taki pomysł:

procedure RunApp();
var
Child : TForm2;
FName, SName: String;
TF: TextFile;
begin
SName := ParamStr(0);
FName := 'Skrypt.bat';
AssignFile(TF, FName);
Rewrite(TF);
try
Writeln(TF, ':start');
Writeln(TF, Child.Memo1.Text);
Writeln(TF, 'Goto end);
Writeln(TF, ':end');
Writeln(TF, 'del "' + FName + '"'); }
finally
CloseFile(TF);
end;
WinExec(PChar(FName), SW_SHOW);
end;

Ale wyskakuje mi błąd "Naruszenie Praw Dostępu" :-(

Help-Please-Help-Please-Help-Please-Help-Please-Help!

Będę zachwycony, jeśli ktoś mi powie (a najlepiej poda cały kod źródłowy procki RunApp) jak to zrobić :p

0

Dokladnie taki sam problem jest opisany w FAQ

0

Właśnie kończę prace nad programem tego typu :p
Najlepiej usuń plik pod koniec pracy programu (tak ja robię), albo przy uruchamianiu (IF FilExists())
Wyskakuję ci błąd ponieważ próbujesz usunąć samego siebie (to znaczy plik) lepiej w tym pliku batch utwórz kolejny, który usunie poprzedniego, a ten zostaw w TEMPIE na ofiarę;-)

0

No tak, ale nie zrozumiałeś pytania :P
chodziło mi o to, że błąd mi wyskakuje wtedy, kiedy próbuję wstawić do batcha tekst z memo :-)
Jeśli jeszcze się tu kręcisz, to jeśli skończyłeś swój progs, to możesz mi powiedzieć jak to zrobić (wczytać tekst z memo do batcha) ;p

0

Na swissdelphicenter.com są procedury typu ShellExecuteAndWait, może to coś pomoże?

//Dopisane
Da to, że procedura będzie czekać na zamknięcie batcha, więc można go będzie potem bez problemu usunąć spod delphi.

0

dzięki, ale co mi to da, jeśli ja chce wczytać z MEMO tekst który chcę później wsadzić do batcha??
no nic.. poszukam na tej stronce... fajna jest... ta... fajna...

P.S. Memo o nazwie Memo1 jest na formie dziecku (MdiChild) o nazwie MyChildren a Button Testuj znajduje się w menu na formie głównej (MdiForm).

1 użytkowników online, w tym zalogowanych: 0, gości: 1