지난 두달 정말 다사다난한 기간이였다...
안팎으로 한꺼번에 많은 일들이 생겨 정신이 한개도 없는...
오랜만에 블로그를 쓰게되는군...
오늘 내용은 저번에도 언급했던 ClickOnce 삭제 메뉴 맨들기~
ClickOnce 로 설치된 프로그램을 제어판의 프로그램추가/삭제에서 하지 말고 메뉴를 강제로 만들어서 쓰자...뭐 이런 내용...
코딩은 간단하다. 바로가기 만들기의 소스에 약간의 코딩을 추가하여 시작/프로그램의 메뉴에 삭제실행 파일을 만들고 그 안에 stream 으로 삭제명령을 적는다는 이런 내용...
프로그램추가/삭제 때 내부적으로 사용되는 명령을 강제로 실행해주는 것 뿐이다.
바로가기때와 마찬가지로
함수안에 추가만 해주도록 하자.
1. 삭제실행파일 존재여부 체크
// 삭제실행파일 경로
string delFilePath = System.Environment.GetFolderPath(Environment.SpecialFolder.StartMenu) + @"\Programs\" + companyName + "\Uninstall.bat";
if (!System.IO.File.Exists(delFilePath)) {
// 파일이 없으면 맨들어주는거다!!
}
2. 삭제실행파일 껍데기 만들기(Uninstall.bat)
StreamReader reader = new StreamReader(startDir);
string result = reader.ReadToEnd();
reader.Close();
result = result.Substring(result.IndexOf("#") + 1);
Encoding _encoding = Encoding.GetEncoding(949);
StreamWriter writer = new StreamWriter(delFilePath
, false, _encoding);
3. 실제 명령줄 write 하기
// CommandLine 숨기고
writer.WriteLine("@echo off");
// 삭제명령어 쓰고
writer.WriteLine(@"start %windir%\system32\rundll32”
+.exe dfshim.dll,ShArpMaintain “+result);
// 빠져나오고
writer.WriteLine(@"exit");
writer.Close();
여기다가 추가로 바탕화면에 생성된 파로가기파일을 del 로 삭제해주고 bat 파일도 del 로 삭제해주는걸 넣어주는 쎈스~
이렇게 해서 만들어진것은 다음 그림과 같다.
뭐 파일명은 원하는대로 맨들고~
파일을 클릭하면 삭제confirm 창이 뜨고 삭제가 수행된다.
오...깔끕하게 삭제...물론 바탕화면 파일도 삭제...
내가 직접 탐색기에서 폴더 삭제했다 의심하지 말기를...--;;
이상으로 ClickOnce 확장은 접어두도록 해야겠다.
이제 TFS 프로그래밍에 대한 이야기를 해야하기 때문에...
원본 위치 <http://blog.naver.com/PostView.nhn?blogId=parky15&logNo=40051179921&categoryNo=2&viewdate=&cpage=1&listtype=0>
'IT > Dot Net' 카테고리의 다른 글
[펌] ClickOnce 애플리케이션의 필수 프로그램 배포 - 부트스트래퍼(Bootstrapper) (0) | 2008.07.21 |
---|---|
[펌] XAML Converter (0) | 2008.07.02 |
[펌]ClickOnce - 바탕화면 바로가기 (0) | 2008.06.06 |
강제 메모리 회수 (0) | 2008.05.22 |
XAML 관련링크 (0) | 2008.05.22 |