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
[43830] Re:Re:Re:자기자신을 삭제하는 실행 화일을 만들려고 합니다.(자답)
둥이네 [grin79] 1597 읽음    2006-02-27 09:28
간편하게 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 를 포맷 못하는것처럼요...
: : :  그런데 이 파일이 은근히 신경 쓰이네요..
: : :  근데 왠지 방법은 있을꺼 같은데.....
: : :  인스톨 쉴드를 사용하면 좋을꺼 같은 생각도 들지만...
: : :  이왕이면 프로그램을 약간 수정해서 그대로 사용 했으면 합니다.
: : :  자기 자신도 삭제 가능한 프로그램
: : :  어떻게 하면 좋을지 의견이나 조언 부탁 드립니다.

+ -

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