메뉴

dExpert logo

Script 방식의 자동 업데이트 프로그램 MAutoUpdater(자체 Script를 지원하여 해당 Script만 변경하면 어떤 프로그램도 자동 업데이트가 가능)

등록자 joohyuni  
등록일 2019-08-08 오후 5:45:51
가격 99,000원 (VAT 별도)
판매 수 0건 (열람 : 87)
사용환경 Windows 7/Windows 10/다국어 지원
첨부파일 MAutoUpdate.zip
샘플 MAutoUpdateSample.zip
평점
판매자 컨텐츠 등록 수 3 건
프로그램 설명 :

MAutoUpdater는 Script 방식의 자동업데이트 프로그램입니다.

자동 업데이트를 자체 Script를 이용하여 수행하며 프로그램 Source 수정없이 Script 변경만으로 거의 모든 프로그램을 자동 업데이트 할 수 있습니다.
Script를 이용하여 자기 자신도 업데이트가 가능하며, Registry 제어, Service 제어, 외부 프로그램 실행, HTTP/FTP 파일 다운로드, 파일 버전 비교, 메세지 표시 등 거의 모든 작업이 가능합니다.
기본적으로 업데이트 판단은 파일에 버전 정보가 있으면 버전 정보로 판단하고 버전 정보가 없으면 파일 Size로 변경 여부를 판단하게 되어 있습니다.

Update할 파일이 많을 경우 제공되는 MScriptMaker 프로그램을 이용하여 Update Sxript를 자동으로 생성할 수 있습니다.

자동 업그레이드를 위해서는 먼저 MAUpdater.exe를 실행해주시면 해당 프로그램이 모든 업데이트를 마치고 Product 실행 파일을 실행하고 자신은 종료합니다.

Product 실행파일 판단 기준
 - MAUpdater.exe 파일명을 xxx_updater.exe로 변경하여 실행 -> xxx를 Product 명으로 판단하고 업데이트 후 xxx.exe를 실행 시킴
 - MAUpdater.exe 파일명 변경 없이 사용(해당 프로그램이 존재하는 폴더명이 yyy일 경우) -> 해당 프로그램이 존재하는 폴더명을 Product 명으로 판단하고 업데이트 후 yyy.exe를 실행 시킴

자동업그레이드 적용시 자동업그레이드 대상 제품의 실행 파일이 product.exe라고 하면 항상 MAUpdater.exe 실행 파일을 먼저 실행 시켜주시면 해당 파일이 모든 파일을 자동업그레이드를 한 후 product.exe를 실행하고 자신은 종요합니다.

본 프로그램은 Visual Studio 6.0에서 MFC 사용없이 Win32로만 제작되어서 해당 실행 파일과 사용하는 script 파일(text 파일)만 있으면 정상 작동합니다.
(Visual Studio 재배포 패키지나 .Net Framework 등 어떠한 프로그램도 사전 설치가 필요 없습니다.)


MAutoUpdater 가 지원하는 Script 예약어 및 함수는 아래와 같습니다.

- 예약어 -
<TARGETDIR>      업그레이드할 프로그램 설치 폴더
<UPDATEDIR>      Upgrade 파일 Download 폴더
<SYSDIR>         시스템 폴더
<SYSDISK>        시스템 드라이브
<WINDIR>         Windows 폴더
<WINDISK>        Windows 드라이브
<MODULENAME>     자동 업그레이드 실행 파일명
<PRODUCTNAME>    업그레이드할 제품명


- 스크립트 명령어 -
command                    arguments                                                                return value  example
CopyFile                   String strSrcFile, String strDestFile                                    BOOL          CopyFile("C:\abc.txt", "D:\ab d.txt");
CopyDirectory              String strSrcDir, String strDestDir                                      BOOL          CopyDirectory("C:\source", "D:\Dest directory");
MoveFile                   String strSrcFile, String strDestFile                                    BOOL          MoveFile("C:\abc.txt", "D:\ab  d.txt");
                           String strSrcDir, String strDestDir                                      BOOL          MoveFile("C:\SOURCEDIR", "D:\Dest directory");
DeleteFile                 String strFileName                                                       BOOL          DeleteFile("C:\abc.txt");
RemoveDirectory            String strDirectory                                                      BOOL          RemoveDirectory("C:\sourcedir");
RemoveDirContents          String strDirectory                                                      BOOL          RemoveDirContents("<UPDATEDIR>");
ExistsFile                 String strFileName                                                       BOOL          ExistsFile("<UPDATEDIR>\web\web.cab");
GetFileSize                String strFileName                                                       DWORD         GetFileSize("<TARGETDIR>\system\message_ko.xml");
GetFileVersion             String strFileName                                                       String        GetFileVersion("<TARGETDIR>\system\NCCmdSvr.exe");
ExecuteFile                String strFileName                                                       BOOL          ExecuteFile("<UPDATEDIR>\exec\instexec.exe -a ppp -b xxx");
ExecuteFileWait            String strFileName                                                       BOOL          ExecuteFileWait("<UPDATEDIR>\exec\instexec.exe -a ppp -b xxx");
StartService               String strServiceName                                                    BOOL          StartService("World Wide Web Publishing");
StopService                String strServiceName                                                    BOOL          StopService("World Wide Web Publishing");
ExistsService              String strServiceName                                                    BOOL          ExistsService("World Wide Web Publishing")
DownloadUpList             void                                                                     BOOL          DownloadUpList();
AddFileToUpList            String strFile                                                           BOOL          AddFileToUpList("MAUpdater.exe");
                           String strFile, String strVersion                                        BOOL          AddFileToUpList("MAUpdater.exe", "1, 0, 0, 0");
                           String strFile, String strFileSize                                       BOOL          AddFileToUpList("MAUpdater.exe", "1667072");
GetUpListFileCount         void                                                                     DWORD         GetUpListFileCount();
StartFileToUpList          DWORD dwFileCount                                                        void          StartFileToUpList(100);
EndFileToUpList            void                                                                     void          EndFileToUpList();
CopyUpList                 void                                                                     BOOL          CopyUpList();
MoveUpList                 void                                                                     BOOL          MoveUpList();
SetMessage                 String strMessage                                                        void          SetMessage("파일 복사중");
PopupMessage               String strMessage                                                        void          PopupMessage("실행 파일이 없습니다. 재설치 해주십시오.");
GetPrivateProfileString    String strSection, String strKey, String strDefault, String strFileName  String  
WritePrivateProfileString  String strSection, String strKey, String strValue, String strFileName    BOOL    
AddPrivateProfileString    String strSection, String strKey, String strValue, String strFileName    BOOL    
RegCreateKey               String strKey, String strSubKey                                          BOOL    
RegQueryStringValue        String strKey, String strValueName                                       String  
RegQueryDWORDValue         String strKey, String strValueName                                       DWORD   
RegSetStringValue          String strKey, String strValueName, String strValueData                  BOOL    
RegSetDWORDValue           String strKey, String strValueName, DWORD dwValueData                    BOOL    
RegDeleteKey               String strKey, String strSubKey                                          BOOL    
RegDeleteValue             String strKey, String strValueName                                       BOOL    
Exit                       void                                                                     void          Exit();
Goto                       <LABELNAME>                                                                            Goto Label_Next;
!                          <EXPRESSION>                                                             BOOL          !ExistsService("World Wide Web Publishing")


환경 구축 :

FTP 서버를 업데이트 서버로 이용하기 위해서는 서버에 있는 모든 파일을 업데이트 하려는 PC에서 FTP 접속하여 모두 다운 받을 수 있는 상태면 됩니다.
Web 서버를 업데이트 서버로 이용하기 위해서는 서버에 있는 모든 파일을 업데이트 하려는 PC에서 웹브라우저 주소줄에 파일 경로를 입력하여 모두 다운 받을 수 있는 상태면 됩니다.
(Web Server로 IIS Server를 사용할 경우 Update시 사용 하는 Port를 윈도우 방화벽 인바운드 규칙에 추가하거나 방화벽 해제를 하여야 되며 .dat 파일도 웹브라우저 상에서 url로 다운되게 설정을 변경하여야 됩니다.)


기타 사항 :

이전에 만들고 테스트 했던 프로그램이라 script 파일은 ANSI로 저장하여야 하며 유니코드나 UTF-8로 저장할 경우 인코딩 하는 Code를 script 파일 읽어보는 부분에 추가하셔야 합니다.


주의 사항 :

Sample 파일은 테스트 용으로 기능제한이 있습니다.(업데이트 파일이 5개 까지만 가능합니다.)
Sample 파일은 해당 프로그램 구매전 기능 테스트를 위하여 제공되는 것이며 기능 테스트 이외의 어떤 사용도 금지합니다.



파일 설명 :

MAutoUpdate_sample.zip : 테스트용 Sample 파일
MAutoUpdate_src.zip : Source Project 파일


제가 사정상 이 게시판은 자주 못보니 문의는 메일로 해주시기 바랍니다. ^^;
제 메일주소는 joohyuni@hanmail.net 입니다.

이전 구매

댓글 ( ※ 이 컨텐츠에 대한 궁금점이나 의견 등 다양한 의견교환의 공간입니다. )

댓글이 없습니다.