지돌이의 블로그 입니다!

JsAutoUpdater


특징

 - HTTP 기반으로 별도 업데이터 서버 없이 웹호스팅만으로도 가능합니다.

 - 업데이트가 필요한 파일만 다운로드 해 효율적입니다. (파일별로 버전 설정)

 - HTTP뿐만 아니라 HTTPS도 지원합니다.

 - TaskBar 진행률 표시 기능으로 Windows 7 이상에서 Task Bar에 진행률이 표시됩니다.

 - 32/64bit에 따라 다른 작업 수행가능합니다.

 - 한글을 지원합니다.

 - 절대경로/상대경로를 지원합니다.

 - 디렉토리가 없을 시 서브디렉토리들을 자동으로 생성합니다.

 - 파일 다운로드 및 업데이트는 Worker Thread에서 작동하므로 UI멈춤이 없습니다.

 - 128KB 버퍼링 기능으로 메모리가 절약되며 대용량 파일도 다운로드 가능합니다.

  ( 제 서버와 컴퓨터 기준으로 25MBytes/s 의 속도로 다운로드가 가능했습니다. )

 - 실시간 다운로드 속도가 표시됩니다.

 - UAC관리자 권한 획득으로 권한이 필요한 디렉토리 접근이 가능합니다.

 - 파일 업데이트, 삭제, 프로세스종료, 실행, 실행과기다림(*재배포패키지 등 설치가능!)바로가기 생성 등이 가능합니다.

 - 서버파일은 txt뿐만 아니라 do, jsp, php 을 지원합니다.

 - 업데이터 자가 업데이트 (Self Update)가 가능합니다.


예제프로그램

TestUpdater.zip


소스 다운로드

http://dexpert.devpia.com/TecBoxs/3246



소스는 UpdaterSettings.cpp파일만 수정하셔서 사용하시면 되며

업데이트 이미지는 res\updater.image.png 파일을 수정하시면 되고

업데이터 아이콘은 res\JsAutoUpdater.ico 파일을 수정하시면 됩니다.



JSAUTOUPDATER_SETTINGS_OPTION_AUTOSTART 옵션은 업데이트 필요시 즉시 업데이트(‘업데이트’ 버튼 클릭 필요 없이)하게 합니다.


서버쪽 설정

업데이트URL에는 current파일과 filesinfo파일과 files디렉토리가 필요합니다.

사용 가능한 파일 이름 (높은 우선순위부터)

- current 파일

current.txt

current.do

current.jsp

current.php

- filesinfo 파일

filesinfo.txt

filesinfo.do

filesinfo.jsp

filesinfo.php

 

files 디렉토리에는 업데이트할 파일들이 필요합니다.

 

current 파일 구조

*버전번호

변한내용

“*” 글자로 시작하며

“*”이후 첫 번째 라인에는 버전번호(숫자 형식은 업데이터 버전번호와 같음)

두 번째 라인부터는 변한 내용을 입력해야합니다.

 

예시)

20112

TEST프로그램 업데이트 내역

v1.0.0 : 초기 프로그램

v2.1.0 : ....업데이트

v2.1.12 : ....패치



filesinfo 파일 설명

“*”으로 시작합니다.

“;”(세미콜론으로 시작하면 주석처리 됩니다.

개행문자(\n)으로 나눠집니다.

입력된 순서대로 처리합니다.

 

한 줄 데이터

플래그;버전번호;서버쪽파일;클라이언트파일

플래그 설명

SU : 업데이터 파일 자체 업데이트 (우선순위가 가장 높아 필요시 먼저 업데이트 합니다.)

K : 해당하는 클라이언트 파일 경로에 위치하는 프로세스를 종료합니다.

U : 파일을 업데이트 합니다.

R : 해당하는 클라이언트 파일을 삭제합니다.

E : 해당하는 클라이언트 파일을 실행합니다.

EW : 해당하는 클라이언트 파일을 실행하고 실행한 파일이 끝나도록 기다립니다.

ML : Link(바로가기)를 생성합니다.

서버쪽파일에는 바로가기 Target 경로를 대신 입력하고

클라이언트파일에는 바로가기를 만들 경로를 입력합니다.

 

플래그 앞에 prefix을 쓸 수 있습니다.

O32 : 32bit컴퓨터에만 적용됩니다.

O64 : 64bit컴퓨터에만 적용됩니다.

) 64bit컴퓨터에서만 다운 : O64U



* 자세한 설명은 샘플/컨텐츠의 설명파일을 참고해 주세요.


구매 후 소스는 자유롭게 수정가능하며 빌드된 프로그램 또한 자유롭게 배포가 가능합니다.

업데이터 소스파일은 재배포가 허용되지 않습니다.

본 프로그램을 사용함으로써 발생하는 어떠한 불이익에도 본 개발자는 책임을 지지 않습니다.


문의는 아래 이메일로 보내주시기 바랍니다.

E-Mail : jic5760@naver.com

Comment +1

2014.12.23. 17:36



JsSafeCrypto는 메모리해킹보안기능이 탑제된 암호화/복호화 소스입니다.


C/C++ 에서 사용할 수 있으며 C함수와 C++클래스소스가 포함되어 있습니다.


RoundKey는 매 번 키생성시마다, 암호화, 복호화시 랜덤한 키로 암호화가 되어

메모리를 덤프하더라도 실제 암호화 키를 찾기가 매우 힘듭니다.

또 암호화,복호화에 사용한 임시 메모리 데이터또한 안전하게 삭제하여 데이터 유출을 방지합니다.


JsSafeCrypto_SEED, JsSafeCrypto_HIGHT가 있습니다.


JsSafeCrypto_HIGHT

한국산 경량 암호화 알고리즘 HIGHT(128-bit Key, 64bit Block)을 사용하였으며 KISA에서 배포된 알고리즘 소스를 바탕으로 제작하였습니다.


JsSafeCrypto_SEED

한국산 암호화 알고리즘 SEED(128-bits/256-bits Key, 128-bits Block)을 사용하였으며 KISA에서 배포된 알고리즘 소스를 바탕으로 제작하였습니다.


JsSafeCrypto 시리즈는 함수(메소드)가 모두 비슷합니다.


C함수들




C++함수들



JsSafeCrypto_SEED : http://dexpert.devpia.com/TecBoxs/3088

Comment +0

2014.11.23. 18:37



이건 내가 간만에 웬지 쓸때있는걸? 만든거 같다..ㅋ

내가 필요하기도 했고 보니깐 다른거는 디자인이 별로라서.. (사실 이것도 좋진 않지만;;)

이건 뭐.. 옆에 사진을 넣을 수 있는 장점이..ㅎ 

VB.Net/C#.Net 자동 업데이터 (많은 기능/편리) (32/64bit감지/TaskBar표시등) - 다운로드

 

Visual Studio 2012 / VB.Net / .Net Framework 3.5

자동 업데이터 프로그램입니다. ( 소스 포함)

 

기능 :

- HTTP 기반 으로 HTTP서버가 필요합니다.

- TaskBar 진행률 표시 기능으로 Windows 7 이상에서 테스크바에 진행율이 표시됩니다.

- 32/64bit 에 따라 다른 작업 수행가능합니다. (filelist.txt 파일참고)

- 업데이트할 내용이 없거나 업데이터 프로그램 종료시 자동으로 인수로 입력된 파일을 실행 합니다.

예) JsAutoUpdater.exe "bin\testprogram.exe"

- 포함리소스로 image1.png 파일을 왼쪽 픽쳐박스에 출력 합니다.

- 한글 파일 지원

- 절대 경로에 파일 다운로드 지원

- 디렉토리가 없을시 자동으로 생성 (여러 서브 디렉토리도 가능)

- 파일다운로드를 별도의 Thread 에서 진행하므로 프로그램 멈춤 방지

- 다운받을 파일의 데이터를 보두 다운받은 뒤 저장하는 방식이 아니라

1024Bytes 씩 끊어서 버퍼저장 후 파일에 저장하기 때문에 메모리절약 .

         

2013-09-27 추가내용

- 현재 파일 다운로드 크기 실시간 확인

- 실시간 다운로드 속도 표시

 

2014-11-25 추가내용

 - 실행파일이름 변경시 오류처리 (소스교체요망)

 - Windows Vista 이전버전 OS지원 (필수(VB.Net버전) / 소스교체요망)

 - 환경변수 기능 (아래내용참고)

 - 버퍼크기 변경(64KB) 및 손쉽게 수정 가능

 - 서버설정으로 업데이트 후 파일 자동실행 기능 추가

 

 

업데이트할 파일이 / 있다면 알리고 / 없으면 프로그램을 종료+파일실행합니다.

(UpdaterSetting_StartupMessageBox 으로 나타낼지 설정할 수 있습니다.)

(아래참고)

 

바뀐내용이 나타납니다. (웹에서 읽어옴)

 

아래 보시면 Task Bar 에도 진행율이 표시됩니다.

 

오류 발생시.

 

modUpdaterSetting.vb 파일입니다.

* 2014-11-25추가

Public UpdaterSetting_StartupMessageBox As Boolean = False '시작시 메시지박스를 표시할것인지

Public UpdaterSetting_BufferSize As Integer = 65536 'bytes 버퍼크기

 

이 파일만 수정해서 사용하시면 됩니다.

업데이트 서버/프로그램 이름/타이틀을 지정할 수 있습니다.

 

웹서버에는 check.txt 파일과 filelist.txt 파일이 기본적으로 필요합니다.

또 files 디렉토리에서 파일들을 다운받습니다.

 

check.txt 파일내용

000100 (6글자 숫자로 v1.10.23 이라면 011023 으로 입력하시면 됩니다.) 
바뀐내용테스트 
테스트 파일 추가

 

filelist.txt 파일내용

; 가 앞에 붙으면 주석입니다.

;Flag:ServerFile:ClientFile 
;Flag 
; U : Update(파일다운로드) 
; K : Update전 프로세스 종료 
; R : Remove(파일삭제) 
; O64U : 64bit컴퓨터에서만 Update(download) 
; O32U : 32bit컴퓨터에서만 Update(download) 
; O64K : 64bit컴퓨터에서만 Update전 프로세스 종료 
; O32K : 32bit컴퓨터에서만 Update전 프로세스 종료 
; O64R : 64bit컴퓨터에서만 Remove(파일삭제) 
; O32R : 32bit컴퓨터에서만 Remove(파일삭제) 

; UCE : 업데이트 완료 후 실행할 파일
K::bin\TestProgram.exe 
U:bin/TestProgram.exe:bin\TestProgram.exe 
O64U:doc/doc-64bit.txt:doc.txt 
O32U:doc/doc-32bit.txt:doc.txt 
U:야생.wmv:야생.wmv

UCE::bin\TestProgram.exe

 

ClientFile 은 절대경로로도 지정할 수 있습니다.

 

두 txt파일은 메모장에서 UTF-8 으로 저장하셔야 합니다.

 

혹시라도 잘못된 부분이 있다면 꼭 덧글 주시기 바랍니다!ㅎㅎ

 

exe파일과 같은 위치에 exe파일이름.updateinfo.ini 이 있어야 합니다.

 

**** 2014-11-25 추가

ClientFile에 환경변수이름을 사용할 수 있습니다. (아래 Path는 OS버전별로 달라질 수 있습니다.)

<DESKTOP> 은 C:\Users\USERNAME\Desktop 으로

<PROGRAMFILES> 은 C:\Program Files 으로 

<MYDOCUMENTS> 은 C:\Users\USERNAME\Documents 으로

<PROGRAMS>은 C:\Users\USERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs 으로

치환됩니다.

 

 

예를들어 <DESKTOP>\PROGRAM.readme.txt 으로 ClientFile을 지정하면 바탕화면\PROGRAM.readme.txt 에 저장됩니다.

 

이 소스의 수정은 자유하나 소스를 재배포, 재판매, 대여 등은 허용하지 않으며

빌드된 프로그램은 자유롭게 사용하실 수 있습니다.

 

다운로드 : http://dexpert.devpia.com/TecBoxs/2858

 

 * Note

 image1.png을 수정할 시 꼭 포함리소스로 등록하셔야 합니다.

Comment +0

2014.10.08. 07:03



JsNaverLogin는 네이버 웹사이트 로그인/관리를 C#에서 HttpWebRequest을 통해 구현한 것입니다.
네이버 로그인은 2중 암호화 방식을 사용합니다. (1단계:RSA암호화, 2단계:HTTPS암호화)
JsNaverLogin는 이 RSA암호화까지 구현하였고, 로그인, 로그인(세션)체크, 로그아웃까지도 지원합니다.

주요기능
 - 로그인 (RSA 2단계 암호화 가능)
 - 로그인세션확인
 - 로그아웃
 - 여러가지 파싱방법으로 추후웹페이지 수정에도 어느정도 대처 (로그인되어있을때, 안되어있을때 각각 2가지씩 총 4방면의 파싱)

콘텐츠 파일에 예제 소스 포함되어 있습니다.

class clsJsNaverLogin
{
    public clsJsNaverLogin(); //생성자
    public clsJsNaverLogin(int timeout); //생성자; timeout시간 (ms단위, 기본 1500ms)
    public clsJsNaverLogin(System.Net.CookieContainer cookiecontainer); //생성자; Cookie컨테이너
    public clsJsNaverLogin(int timeout, System.Net.CookieContainer cookiecontainer); //생성자; timeout시간, Cookie컨테이너
`   public void SetProxyServer(string addr, UInt16 port); //프록시 서버 설정
    public void SetProxyServer(string addr, UInt16 port, System.Net.ICredentials Credentials); //프록시 서버 설정; 인증기능가능
    public int GetLoginRSAKey(); //로그인정보 암호화 RSA Key값 얻기
    public int Login(string id, string password, ref string strWebResponse, ref string strWebTitle); //로그인 (결과Web소스, Title수신가능)
    public int Login(string id, string password); //로그인
    public int Logout(); //로그아웃
    public int CheckLoggedIn(ref string strLoggedIn_ID, ref int ResultCnt_positive, ref int ResultCnt_negative); //로그인(세션)확인 (로그인된ID, 로그인여부 확율값 (positive/negative)확인가능)
    public int CheckLoggedIn(); //로그인(세션)확인
    public System.Net.CookieContainer GetCookiecContainer(); //Cookie컨테이너 얻기
}

로그인 전 로그인세션확인 (로그인이 되어있지 않으므로 FALSE)


로그인 실패시 (Failed)


로그인 성공(Succeed)


로그인 확인(로그인 된 상태이므로 TRUE), 소스에서 파싱한 ID값 출력.


로그아웃




이 소스의 수정은 자유하나 기본적으로 원본 소스재판매는 금지합니다.

빌드된 프로그램은 자유롭게 사용하실 수 있습니다.


다운로드 : http://dexpert.devpia.com/TecBoxs/3067

Comment +0

2013.12.11. 20:42



NaverStaticMap은 프로그램에서 쉽게 지도를 이용할 수 있게 해주는 클래스입니다.

지도는 네이버의 Static지도(1.1버젼 최신)를 이용하였으며,

Static map을 이용해 서버필요없시 컴퓨터만으로 작동할 수 있고, 기존의 네이버맵(자바/Flash등등)에 구애받지 않고

원하는 기능을 마음껏 넣을 수 있습니다!

 

처음 이동을 클릭하면.


 

마커를 추가할 수 있습니다.


 

마커를 클릭하면!

마커클릭은 이벤트로 되어있어서, 마커를 클릭하면 메뉴를 보이게 할 수도 있습니다.


마우스로 드래그하면!

 

뭐 마커, 마우스 드래그 모두 네이버에 기본으로 있는게 아니라 직접 구현했습니다.

마커도 원하면 marker.png파일을 수정해 그림을 바꿀수도 있습니다.

 

지도타입을 설정할 수 있고, 캐쉬사용으로 지돌르 저장해 같은 위치를 보면 네이버에 접속하지 않고, 사진을 받아옵니다.

그리고 마커마다 고유번호가 있어 모든 마커를 구분할 수 있습니다.

 


Public Function DeleteCache() As Boolean 캐시파일을 삭제합니다.

Public Function Init( : 처음에 초기화와 설정합니다.

ByVal NaverMapAPIURL As String, : 네이버맵 API주소를 입력합니다.

(http://openapi.naver.com/map/getStaticMap 을 입력하시면 됩니다.)

ByVal NaverMapAPIKey As String, : 네이버에서 발급받은 Key을 입력합니다.

ByVal NaverMapAPIKeyUrl As String, : 발급받은 Key의 URL을 입력합니다.

ByVal Width As Integer, : 맵의 가로크기입니다.

ByVal Height As Integer, : 맵의 세로크기입니다.

Optional ByVal CachePath As String "" 캐시파일을 저장할 디렉토리입니다.

지정하지 않으면 어플리케이션디렉토리\CACHE폴더에 저장됩니다.

As Integer 성공시 0실패시 오류번호를 반환합니다.

 

Public Function SetMapPictureBox( : 처음에 맵을 표시할 픽쳐박스를 지정합니다.

ByRef Pic As PictureBox : 픽쳐박스컨트롤 입니다.

As Boolean 성공시 True을 실패시 False을 반환합니다.

 

Public Function SetSize( : 맵의 크기를 변경합니다.

ByVal Width As Integer, : 맵의 가로크기입니다.

ByVal Height As Integer 맵의 세로크기입니다.

As Boolean 성공시 True을 실패시 False을 반환합니다.

 

Public Function SetMapType( : 맵의 타입을 변경합니다.

ByVal MapType As NaverMapType : 맵의 타입입니다. NaverMapType을 참조하세요.

As Boolean 성공시 True을 실패시 False을 반환합니다.

 

Public Function SetCenter(

ByVal Level As Byte, : 맵의 레벨(확대)을 지정합니다. (1~14)

ByVal Lng As Double, : 경도를 지정합니다.

ByVal Lat As Double 위도를 지정합니다.

As Integer 성공시 0실패시 오류번호를 반환합니다.

 

Public Sub GetCenter( : 현재 지도의 위치를 얻어옵니다.

Optional ByRef Level As Byte = 0, : 맵의 레벨입니다.

Optional ByRef Lng As Double = 0, : 경도입니다.

Optional ByRef Lat As Double = 0) : 위도입니다.

 

Public Function Marker_Create( : 마커를 생성합니다.

ByVal Lng As Double, : 마커의 경도입니다.

ByVal Lat As Double, : 마커의 위도입니다.

ByRef MarkerNumber As Integer 마커의 번호를 반환합니다.

As Integer 성공시 0실패시 오류번호를 반환합니다.

 

Public Function Marker_Delete( : 마커를 삭제합니다.

ByVal MarkerNumber As Integer 마커의 번호입니다.

As Integer 성공시 0실패시 오류번호를 반환합니다.

 

 

Public Event Map_Markers_ClickEvent( : 마커를 클릭하면 실행될 이벤트입니다.

ByVal MarkerNumber As Integer, : 마커의 번호입니다.

ByVal As System.Windows.Forms.MouseEventArgs) : MouseEventArgs타입의 이벤트 정보입니다.

 

 

Public Enum NaverMapType As Byte 맵의 타입Enum입니다.

DefaultMap = 0 : 기본지도입니다.

SatelliteMap = 1 : 위성지도입니다.

Satellite_overlay = 2 : 위성 중첩지도입니다.

DefaultMap_bicycle = 3 : 기본 자전거도로 중첩지도입니다.

DefaultMap_traffic = 4 : 기본 자동차도로 중첩지도입니다.

Satellite_bicycle = 5 : 위성 자전거도로 중첩지도입니다.

Satellite_traffic = 6 : 위성 자동차도로 중첩지도입니다.

End Enum

 

자세한것은 예제소스를 참고해주세요!

데브피아ID : jic5760

E-Mail : jic5760@naver.com

이 소스의 수정은 자유하나 소스를 재배포, 재판매, 대여 등은 허용하지 않으며

빌드된 프로그램은 자유롭게 사용하실 수 있습니다. 

 

소스 다운로드 : http://dexpert.devpia.com/Tecboxs/2595


다시보니 소스에 문제가 약간씩 있네요... 수정한 C#소스입니다.

http://dexpert.devpia.com/TecBoxs/3138

Comment +0