|
간편하게 API 로.... ^^; 어떻게 해야 할지요...
제일 쉬운건..인스톨 쉴드로 하는게 제일 쉽겠지만요.....
무언가가 좋은 아이디어가 없을까요?
김태선 님이 쓰신 글 :
: 좋은 아이디어네요.
: 그런데 bat 파일로 만들어 실행할 경우
: exe 쪽의 종료가 조금 늦어지면 bat 파일의 삭제가 실패할 것 같은데,
: 그렇지 않은가요?
:
: 상위디렉토리까지 삭제는 삭제용 프로그램을 간편하게 API만으로 만드시는게 좋을거 같네요.
:
:
:
: 둥이네 님이 쓰신 글 :
: : 검색하다가 우연히 알았습니다.
: : 배치 파일을 만들면 간단하네요..
: :
: : 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 를 포맷 못하는것처럼요...
: : : 그런데 이 파일이 은근히 신경 쓰이네요..
: : : 근데 왠지 방법은 있을꺼 같은데.....
: : : 인스톨 쉴드를 사용하면 좋을꺼 같은 생각도 들지만...
: : : 이왕이면 프로그램을 약간 수정해서 그대로 사용 했으면 합니다.
: : : 자기 자신도 삭제 가능한 프로그램
: : : 어떻게 하면 좋을지 의견이나 조언 부탁 드립니다.
|