|
| Posted by ps.이진백 | 2004-06-22 16:53:48, Hit : 7708 | |
|
|
|
창조로 자동 업데이트 구현하는 글에 관해서 이전에도 많이 올라왔습니다.
하지만 가장 큰 문제점은 역시나 자기 자신을 업데이트 한다는 것이겠죠.
윈도우즈에서 실행중인 파일을 제거하다가 에러메시지가 뜨는 모습을 보신적이 있을겁니다.
이 현상을 어떻게 해결할 것인가.
방법은 하나, 문제되는 프로그램을 끄세요(?)
아니면 뭐 API 지지고 볶는 그런것도 본듯 한데, 그거는 안맞는것 같고 복잡해서 안씁니다.
서론이 좀 길군요. (여기까지 다 서론?)
해답은 프로그램을 종료하는 겁니다.
1. 사용자가 프로그램(A)을 실행했습니다.
2. A는 인터넷을 뒤져서 업데이트 정보를 다운받습니다.
3. 새 정보가 있다는게 들통나면 A는 업데이트 프로그램(B)을 다운받습니다.
4. B는 다운되어 실행되고, A는 종료됩니다.
5. B가 A를 포함한 모든 업데이트 파일을 받습니다.
6. 모든 작업이 끝나면 A가 실행되고, B는 닫습니다.
7. 덤으로 B를 소멸시켜도 됩니다.
이거를 소스로 구현해보세요.
너무 트래픽 낭비라 생각하신다면, B를 배포시부터 설치시켜두세요.
대신 업데이트 파일 정보를 다운받아 보고 설치하게 하시거나요.
제가 예전에 멋도 모르고 정보만 받고 실행파일 다운받게 했거든요.
인터넷익스플로러가 띄워지고, 파일 다운로드 창이 뜨는 형식이었어요.
역시 자기 자신을 못바꾸고 추가 파일을 못받는 통에..;;
차라리 웹폴더에 모든 내용을 넣고 하나씩 다운받는게 나을듯 싶습니다.
ps. FTP DLL을 만드는데... 왜 함수 결과가 거짓인지;
아무튼 기대해주세욧! |
|
|
최재일 2004-06-23 PM 2:51:59 |
|
|
|
훔.. 저두 대박로또 업데이트 기능 구현시 자기 자신을 어떻게 업데이트하느냐에 고민했었는데 이렇게 해결했습니다..
(대박로또를 A, 업데이트기 프로그램을 B라 하겠습니다)
(ps.이진백님 말처럼 트래픽을 줄이기 위해 B는 배포시 설치되어 있습니다)
1. A가 실행되면 A 및 B의 최신버전을 확인합니다..
2. 최신버전이 있으면 먼저 B를 다운받아 최신파일로 교체합니다.. (B의 최신버전이 없으면 이 작업은 생략하고 3번 작업으로 넘어감)
3. A는 계속해서 임시폴더에 A의 최신파일을 다운받아놓고 B를 실행 후, 종료됩니다..
4. B는 A를 최신파일로 교체합니다..
5. B는 임시폴더의 내용을 삭제하고 A를 재실행 후, 종료됩니다..
막상 위 방법대로 명령어로 구현하다보면 생각지도 못한 곳에서 문제점이 생기기도 하는데요.. 큰 틀은 위 방법과 비슷하죠.. |
|
|
지상현 2004-06-24 PM 10:21:33 |
|
|
|
팁 하나... DLL 만들 때 진리형을 쓰지 마세요....진리를 모두 실수로 바꾸시고 하세요.
사용자함수에서 DLL 연결해서 쓸 때 진리형으로 하면 버그가 많습니다... |
|
|
지우개 Expert 3.0 제작자 : 천호성 님 [LINK] |
|
|
|
대박로또2005 제작자 : 최재일 님 [LINK] |
|
|
1 | 박종훈 님 | 15292 점 | |
2 | 지상현 님 | 8809 점 | |
3 | 손상진 님 | 7388 점 | |
4 | 권선중 님 | 6060 점 | |
5 | 이진백 님 | 5174 점 | |
|
|
|
가입일 | 닉네임 |
05/31 | 김동률 |
03/31 | 홍형기 |
09/01 | o00pp99oo |
12/27 | 이재민 |
11/20 | 이희철 |
|
|
|
|
. |
. |
. |
|