|
검색하다가 우연히 알았습니다.
배치 파일을 만들면 간단하네요..
HANDLE hFile;
DWORD dwWritten;
AnsiString buf;
AnsiString app = ExtractFilePath(ParamStr(0)) + "delUninstall.bat";
hFile = CreateFile(app.c_str(), GENERIC_WRITE,
0, NULL, CREATE_ALWAYS, 0, NULL);
buf = "del " + ExtractFileName(ParamStr(0)) + "\r\n" +"del " + "delUninstall.bat";
WriteFile(hFile,buf.c_str(),buf.Length(),&dwWritten,NULL);
CloseHandle(hFile);
이렇게 만들어 주고 나서...
파일을 close 할때..
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
AnsiString app = ExtractFilePath(ParamStr(0)) + "delUninstall.bat";
if( FileExists(app))
WinExec(app.c_str(),SW_SHOW);
}
//---------------------------------------------------------------------------
하니 삭제가 되네요..
이걸하니 또 갑자기 바로위 상위 디렉토리까지 삭제하고픈 욕구가 드네요..
혹시나 아시면 조언 부탁 드립니다.
둥이네 님이 쓰신 글 :
: 어떻게 하다보니 인스톨 쉴드를 사용 안하고 수동으로 직접 파일을 지우는
: uninstall 프로그램을 사용하게 되었는데요.....
: 언인스톨을 하고 나면 언인스톨을 실행하는 실행 파일만 하나 덩그러니 폴더에 남아 있네요.
:
: 만약 testuninstall.exe 라는 프로그램이 있으면....
: 이걸 클릭하면 해당 디렉토리가 RemoveDir(const AnsiString Dir);
: 로 지워지는데..문제는..
: testuninstall.exe 자기 자신은 못지우네요..어쩌면 당연한건지도..
: test 란 폴더에 프로그램이 다있다면..
: testuninstall.exe. 를 제외한 모든 파일들은 다 삭제 되고.....나중에 test 폴더안에..testuninstall.exe 만 남아 있습니다.
: 윈도우가 c 를 포맷 못하는것처럼요...
: 그런데 이 파일이 은근히 신경 쓰이네요..
: 근데 왠지 방법은 있을꺼 같은데.....
: 인스톨 쉴드를 사용하면 좋을꺼 같은 생각도 들지만...
: 이왕이면 프로그램을 약간 수정해서 그대로 사용 했으면 합니다.
: 자기 자신도 삭제 가능한 프로그램
: 어떻게 하면 좋을지 의견이나 조언 부탁 드립니다.
|