سلام به همگی دوستان
میخوام یک برنامه Uninstall درست کنم که یک برنامه نصب شده رو حذف کنم
با کد زیر میتونم فایلهای یک مسیر رو پاک کنم:
procedure TForm1.DelFilesFromDir(Directory, FileMask: string;
DelSubDirs: Boolean);
var
SourceLst: string;
FOS: TSHFileOpStruct;
begin
FillChar(FOS, SizeOf(FOS), 0);
FOS.Wnd := Application.MainForm.Handle;
FOS.wFunc := FO_DELETE;
SourceLst := Directory + '\' + FileMask + #0;
FOS.pFrom := PChar(SourceLst);
if not DelSubDirs then
FOS.fFlags := FOS.fFlags OR FOF_FILESONLY;
// Remove the next line if you want a confirmation dialog box
FOS.fFlags := FOS.fFlags OR FOF_NOCONFIRMATION;
// Add the next line for a "silent operation" (no progress box)
// FOS.fFlags := FOS.fFlags OR FOF_SILENT;
SHFileOperation(FOS);
end;
حالا اینجا دو تا مشکل وجود داره
یکی اینکه خود برنامه حذف هم توی همون پوشه قرار داره و موقع حذف نمیتونه خودش خودش رو حذف کنه و پیام خطا میده
و دوم اینکه زیر پوشه های اون مسیر رو حذف نمیکنه
چطوری میتونم این مشکل رو رفع کنم؟