C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[43822] Re:자기자신을 삭제하는 실행 화일을 만들려고 합니다.(자답)
둥이네 [grin79] 1517 읽음    2006-02-25 10:52
검색하다가 우연히 알았습니다.
배치 파일을 만들면 간단하네요..
     
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 를 포맷 못하는것처럼요...
:  그런데 이 파일이 은근히 신경 쓰이네요..
:  근데 왠지 방법은 있을꺼 같은데.....
:  인스톨 쉴드를 사용하면 좋을꺼 같은 생각도 들지만...
:  이왕이면 프로그램을 약간 수정해서 그대로 사용 했으면 합니다.
:  자기 자신도 삭제 가능한 프로그램
:  어떻게 하면 좋을지 의견이나 조언 부탁 드립니다.

+ -

관련 글 리스트
43821 자기자신을 삭제하는 실행 화일을 만들려고 합니다. 둥이네 1268 2006/02/25
44169     Re:자기자신을 삭제하는 실행 화일을 만들려고 합니다. 박영목 1832 2006/03/18
43822     Re:자기자신을 삭제하는 실행 화일을 만들려고 합니다.(자답) 둥이네 1517 2006/02/25
43823         Re:Re:자기자신을 삭제하는 실행 화일을 만들려고 합니다.(자답) 김태선 2357 2006/02/25
43830             Re:Re:Re:자기자신을 삭제하는 실행 화일을 만들려고 합니다.(자답) 둥이네 1598 2006/02/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.