PDA

View Full Version : پاک کردن فایل exe



hadiaj168
سه شنبه 24 آذر 1388, 23:57 عصر
سلام
من با این کد دست به خودکشی میزنم :لبخند::

procedure TForm1.Button1Click(Sender: TObject);
var
bath : textfile;
begin
assignfile(bath,'aa.bat');
rewrite(bath);
write(bath,'del '+ExtractFilename( ParamStr(0))+' aa.bat');
closefile(bath);

ShellExecute(0,nil,Pchar('aa.bat'),Nil,Nil,SW_Show );
Application.Terminate;

end;
اما وقتی حجم فایل exe زیاده بسته شدنش طول می کشه و به همین دلیل فایل پاک نمیشه:ناراحت:!
راه حلی به نظرتون میرسه؟

alinikaein
چهارشنبه 25 آذر 1388, 09:21 صبح
سلام؛

مي‌توني ShellExecute را توي رويداد OnClose فرم بذاري (البته اگه نياز باشه، مي‌توني Tag كليد را هم وقتي زده شد، تغيير بدي و توي OnClose چك كني، ببيني كليد زده شده يا نه تا ShellExecute اجرا بشه).
احتمالاً اينجوري مشكل حل مي‌شه.

يا علي... موفق باشي...

hadiaj168
چهارشنبه 25 آذر 1388, 11:46 صبح
سلام؛

مي‌توني ShellExecute را توي رويداد OnClose فرم بذاري (البته اگه نياز باشه، مي‌توني Tag كليد را هم وقتي زده شد، تغيير بدي و توي OnClose چك كني، ببيني كليد زده شده يا نه تا ShellExecute اجرا بشه).
احتمالاً اينجوري مشكل حل مي‌شه.

يا علي... موفق باشي...
ممنون ولی حل نشد:ناراحت:.
میشه تو داس دستوری نوشت مثل sleep تو دلفی:متفکر: ؟

alinikaein
چهارشنبه 25 آذر 1388, 13:21 عصر
سلام.
مي‌توني از دستورات زير استفاده كني:



@echo off
echo Hello, This is show puasing and delay
pause
echo start
ping -n 5 localhost > NUL
echo end
pause

يا علي... موفق باشي...

hadiaj168
شنبه 28 آذر 1388, 17:03 عصر
خیلی ممنون کار کرد:تشویق:.
البته ببخشید یه مدت سرم شلوغ بود نرسیدم امتحانش کنم ولی اگه pause ها رو برداریم کاملا درسته.
بازم ممنون.

alinikaein
یک شنبه 29 آذر 1388, 09:27 صبح
سلام دوست عزيز؛

من Pause ها را براي اين گذاشتم كه عملكرد كدها را متوجه بشيد. به هر حال موفق باشيد...

يا علي...