2009년 12월 21일 월요일

엑셀 암호 풀수 있는 유틸리티

 

오늘 갑자기 친구가 중요한 파일인데...

엑셀에 걸어 놓은 암호가 기억이 안난다고 하네요...ㅋ

 

아마도 제 나이가 건망증이 심해지는 나이인가 봐요...

 

저도 가끔씩 비밀번호 걸어 놓은것이 기억나지 않아서...

대체로 10개 내외로 사용하는데...

어떤경우는 특별해서 엉뚱한 비밀번호를 설정하는 경우...

 

제아무리 발버둥을 쳐도 비밀번호를 찾지 못하는 경우가 종종 발생을 하더라구요...

 

그 친구의 마음을 동병상련이라는 심정으로...

비밀번호를 풀어 달라는 것을 뿌리칠수가 없었습니다.

 

aexpr_250b_setup.exe 이 파일을 설치 하면 바탕화면에

Accent EXCEL Password Recovery 라는 아이콘이 생성 되네요...

 

실행하면 다음과 같은 화면이 뜹니다.

 

 

폴더 아이콘을 클릭 하여 암호를 풀 엑셀 파일을 선택 합니다.

 

세모 모양의 Run Search 를 실행 합니다.

 

아래와 같은 화면이 뜨면 NO 를 선택 합니다.

Yes 를 선택하시면 사전 지정 방식이므로 사전 파일과 정확한 인지가 되어야 하므로 그냥 No를 선택하시는 편이 확실할것 같습니다.

 

아래 화면에서는 디폴트를 선택하신후 Next

다음 화면에서 NO를 놓고 Next

 

다음 화면에서 사용 되었을 만한 문자열을 선택 후 Next

저같은 경우는 어떤것으로 만들었을지 몰라서 모두 다 선택 했습니다.

 

다음화면에서 디폴트 값으로 놓고 Next

 

다음 화면에서 Run a search 버튼을 클릭하여 비밀번호를 검색합니다.

 

 

다음과 같이 비밀번호를 검색하게 됩니다.

 

 

빨간 테두리 안에 비밀번호를 찾아 줍니다.

일단 같은 알파벳만 사용하던가 아니면 숫자만 사용하는 경우는 그나마 빠른 속도로 찾아 지네요...

 

 

 

 

 

2009년 12월 17일 목요일

Repository 설정

//*********************

이 글들은 제가 공부하면서 정리하기 위한 목적이므로 틀린 부분이 있을 수 있습니다.

저 역시 CVS를 처음 접해서 알아 가고 있는 과정입니다.

//*********************

 

 

1. Repository 디렉토리 생성

 

CVS가 어떤 파일 시스템에 설치되는지는 중요하지 않습니다.

단, repository 파일이 위치하는 곳은 NTFS여야합니다.

디렉토리 이름에 공백을 넣지 않도록 합니다.

저는 아래와 같은 디렉토리를 생성 하였습니다.

 

c:\Repository
c:\Repository\cvstemp

 

제가 테스트 하는 PC는 C 드라이브 밖에 없어서 C 드라이브에 디렉토리를 생성 했는데...

왠만하면 다른 드라이브에 설치 해 주시는게 좋을것 같네요.

 

2. 디렉토리 보안과 권한
c:\Repository\cvstemp 디렉토리의 보안 세팅에서 SYSTEM을 포함하는 모든 계정에 모든 컨트롤(권한)을 허가합니다.


c:\Repository\cvstemp 디렉토리로 c:\WINNT\Temp 혹은 “C:\Documents and Settings” 하위의 어떤 디렉토리라도 지정해서는 안된다고 하네요.

Win2000과 Win-XP의 경우 이들 디렉토리는 시스템에서 사용자 접근을 제한하기 때문이라고 합니다.

 

 

3. CVSNT 설정

- 다음과 같이 제어판을 엽니다.

 

- 제어판을 열어 보면 다음과 같이 CVSNT Server 라고 하는 항목이 조회 됩니다.

 

- CVSNT Server 를 더블클릭하면 다음과 같은 화면이 뜹니다.

- OK 버튼을 클릭 하시고 About 탭을 클릭 합니다.

- CVSNT Service 가 실행 되고 있다면 Stop 버튼을 클릭하여 서비스를 중지 시킵니다.

- CVSNT Lock Service 가 실행 되고 있다면 Stop 버튼을 클릭하여 서비스를 중지 시킵니다.

 

- Repository Configuration 탭을 클릭 합니다.

 

- Add 버튼을 클릭 합니다

- Location 버튼을 클릭 합니다.

- 저는 C 드라이브 아래 Repositry 디렉토리 아래 Project 라는 디렉토리를 만들어서 그 아래에 각각의 프로젝트 파일을 두기 위해 Project 안에 Test 라는 디렉토리를 만들었습니다.

 

- 해당 디렉토리를 선택 한 후 확인 버튼을 클릭 합니다.

- 위와 같이 Location 에는 로컬 디렉토리가 조회 되며 Name 에는 외부에서 접근할 수 있는 디렉토리가 조회 됩니다.

 

- Name 접근 디렉토리를 단순하게 바꿔 줍니다.( 저 같은 경우 앞은 빼고 /TEST 로 변경 했습니다.)

 

- OK 버튼을 클릭 하면 다음과 같은 메시지가 출력 됩니다.

- 예(Y) 버튼을 클릭 하면 다음과 같이 보안경고창이 뜨는데 여기에서 차단해제 버튼을 클릭 합니다.

- 다음과 같이 설정 화면이 조회 됩니다.

 

- 탐색기로 설정했던 TEST 디렉토리를 살펴 보면 아래 왼쪽과 같이 기본 파일들이 생성 되어 있는것이 확인 됩니다.

 

- Server Setting 탭을 클릭 합니다.

- Temporary 옆의 버튼을 클릭하여 C:\Repositry\CVSTEMP 디렉토리를 선택 합니다.

- 기타 탭의 환경설정 값은 디폴트로 사용 합니다.

- 적용 버튼을 반드시 눌러 줍니다.

 

- About 탭을 클릭 하여 서비스를 Start 합니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2009년 12월 10일 목요일

Repository 생성(CVSNT 설치)

//*********************

이 글들은 제가 공부하면서 정리하기 위한 목적이므로 틀린 부분이 있을 수 있습니다.

저 역시 CVS를 처음 접해서 알아 가고 있는 과정입니다.

//*********************

 

 

CVS 를 사용하기 위해서는 작업용 문서 및 소스등이 저장되는 서버개념의 Repository가 먼저 생성이 되어 있어야 합니다.

 

저 같은 경우 Repoository 는 서버 클라이언트 구조의 프로그램에서 보면 데이터베이스 역할을 하고 있는 놈이라고 개념을 잡고 있습니다.

 

이 Repository 는 소스 등 뿐만 아니라 이력(Revision) 을 모두 저장을 하고 있습니다.

 

저와 같이 변경되는 프로그램을 각 사이트에 배포 하는 경우...

어떤 사이트는 2009년 1월 1일자 배포본을 사용하고 있고 어떤 사이트는 2009년 12월 1일자를 사용하고 있는 경우가 있습니다.

 

최종 버젼은 2009년 12월 1일자의 소스를 제 컴퓨터에 가지고 있는데...

어느날 2009년 1월 1일자를 사용하고 있는 고객에게서 문제가 발생했다는 전화를 받습니다.

물론 그동안 해결된 문제라면 2009년 12월 1일자로 패치를 해주면 될 문제 이지만...

그러한 부분이 아닌경우...

2009년 1월 1일자의 소스를 고스란히 보고 싶은 경우가 있습니다.

 

이런 경우 2009년 1월 1일자 소스를 체크 아웃 해서 그 소스를 가지고 기능 점검을 할 수 있는 것은 Repository 에서 이력을 관리해 주고 있기 때문입니다.

 

이와 같이 Repository 가 CVS에서 가장 중요한 핵심이 되는 것입니다.

 

어느날 이 Repository 가 휙하니 날아가 버린다면...

여태껏 관리 해 왔던 이력들이 모두 다 날라가 버리는 것이 되겠죠^^

 

**********************************************************

Repositry 설치 방법(Windows)

**********************************************************

1. CVSNT 다운로드

http://www.march-hare.com/cvspro/?lang=EN 에 접속하시면 다음과 같은 화면이 조회 됩니다.

 

왼쪽의 CVSNT의 다운로드를 클릭 합니다.

 

Server Windows 를 선택 하신 후 Free DownLoad Now 를 클릭합니다.

잠시후 위의 화면과 같이 다운로드 차단 화면이 뜨면

클릭하여 파일 다운로드를 클릭하여 다운로드 합니다.

 

cvsnt-server-2.5.04.3510.msi 화일을 다운로드 합니다.

 

2. 파일을 실행 시킵니다.(버젼에 따라 약간의 차이가 있을수 있지만 비슷할것 같습니다...)

 

- Next 버튼을 클릭 합니다.

- I accept 를 선택 후 Next

- Typical 을 클릭 합니다.

- Install 을 클릭합니다.

- 설치 진행 사항이 표시 됩니다.

 

설치 완료 후 시스템 재시작 하겠냐는 메시지 출력 되면 Yes 버튼을 클릭해서 시스템을 재시작 합니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2009년 12월 3일 목요일

CVS 용어

//*********************

이 글들은 제가 공부하면서 정리하기 위한 목적이므로 틀린 부분이 있을 수 있습니다.

저 역시 CVS를 처음 접해서 알아 가고 있는 과정입니다.

//*********************

 

Repository : CVS를통해서작업하는소스, 문서등작업용파일이저장되는서버상의공간이다

Revision : 각 파일별로commit할 때마다 자동으로 더해지는 파일별 버전(임의로 리비전을뒤로돌리는것은불가능). 흔히CVS가관리하는번호며, 사용자가임의로수정할수없다.

Init : 저장소를초기화하는명령어. 프로젝트를시작할때한번만실행한다

Module : 하나의저장소에구분되어저장되는단위. 보통규모가작은프로젝트의경우하나의모듈이면되고, 큰프로젝트의경우에는컴퍼넌트별로모듈을나누거나버전별로나누는경우가있다

Import : 하나의모듈을서버에저장하는명령어

CheckOut : 서버에저장한모듈하나를통째로로컬에가져오는명령어

Update : 파일이나디렉토리를지정하여최신것이나특정리비전, 혹은특정날짜의것을서버에서 로컬로가져오는명령어

Add : 새로운파일을디렉토리에 추가했음을서버에알리는명령어. 파일의경우commit을하기전
까지서버에반영되지않는다

Remove : 파일을삭제했음을서버에알리는 명령어. add와마찬가지로commit하기 전까지서버에서지워지지않는다

Commit : 수정된 내역을 마치고 서버에반영한다는 의미의 명령어(DB에서commit과같은의미)

Tag : 특정 날짜나 릴리즈시에태그를 붙임으로써나중에 해당 릴리즈의리비전으로만가져올수 있게한다.(일반적으로 릴리즈 할 때 태그를 붙여 놓으면 해당 릴리즈 버젼에서 오류가 난 경우 해당 태그로 소스를 가져 와서 오류 점검을 할 수가 있습니다.)

Branch : 일부분혹은전체에서소스를별도로관리해야되는부분이생길때브랜치를사용한다. 브
랜치를사용하게되면리비전의깊이가달라진다(예: 1.1 > 1.1.2.1).

(브랜치는 별도의 기능을 따로 가져 가거나 기능 테스트를 위하는 경우 브렌치를 따서 점검을 하고 완료 되는 시점에 원래 버젼에 Merge 시키거나 혹은 다른 버젼으로 곁가지 쳐서 관리가 되는 경우입니다.)

 

 

CVS 작업 순서

//*********************

이 글들은 제가 공부하면서 정리하기 위한 목적이므로 틀린 부분이 있을 수 있습니다.

저 역시 CVS를 처음 접해서 알아 가고 있는 과정입니다.

//*********************

 

1) 서버에 Repository(저장소) 생성

2) Repository 에 프로젝트 저장소 생성

3) 클라이언트에 WinCVS 설치

4) 프로젝트 생성 후 Repository 프로젝트 저장소에 Import

5) 각 프로젝트 담당자는 Repository 에 있는 프로젝트를 CheckOut

6) 각 담당자는 프로젝트의 해당 부분을 수정 추가 삭제 등의 작업 수행(코딩)

7) 각 담당자는 해당 프로젝트를 서버의 Repository에 Commit (자신의 PC의 수정사항을 반영하는 작업)

   => 이때 다른 작업자와 같은 줄을 작업 한 경우 Commit 이 되지 않는 경우도 발생

   => 이때에는 Update 하여 서버의 소스를 자신의 PC에 가져 온다...

        자신의 PC에서 컴파일 해 보면 소스 중에 중복된 줄은

       <<<<<<<<<<<<<   이런 식으로 작성이 되어 있으므로 컴파일 에러가 발생

       이때는 적당히 수정하여 컴파일 완료 후 Commit 한다.

8) Commit 시 변경된 내역에 대한 상세 내역을 기록한다.

   ( CVS를 사용하면서 변경된 이력을 관리하는 내역이 가장 크므로 이 부분을 소홀히 하면 나중에 변경된 내역을 찾기가 어려워 질수 있다.)

 

WinMerge

http://winmerge.sourceforge.net/

DBISAM 매뉴얼

CVS란?

제가 프로젝트를 수행 하다 보니...

 

거의 비슷비슷한 버전이 여러개가 되네요....ㅠ.ㅠ

 

요즘에는 주로 델파이로 프로그램을 짜고 있는데요...(완전 짝퉁 델파이입니다..ㅋ)

 

한가지를 기본으로 하고는 있지만...

 

기능이 약간 추가 되면서 바뀌는 프로그램들...(옵션으로 처리해도 되는것은 그냥 가지만 옵션으로 처리 하지 못하는 기능들이 간혹 있답니다.)

 

이런 것들은 A 프로젝트를 카피해서 B 프로젝트를 생성시키고 그걸 수정하는 형식으로 하다 보니...

 

어느새 관리하는 프로젝트만 10개가 넘어 버리네요...ㅋ

 

그러다가 어느날 1년전 프로젝트가 머가 안된다고 수리 해 달라고 하는데...

 

그 프로젝트를 압축 풀어 봐도 머가 먼지...ㅎㅎ

 

그렇게 마니 마니 헤매고 있던 어느날...

 

옆에 계시던 부장님이... 형상관리 툴을 이용해 보라고 합니다...

 

" 그게 먼데요?"

 

버젼 관리 툴이라고도 볼수 있고... 여러 사람이 같이 작업도 할수 있고... 등등...

 

암튼 여러모로 편리 하다고 합니다.

 

그래서 형상관리 툴이 무엇인지 궁금증이 생겼답니다.^^

 

형상관리 툴이란 한마디로...

소프트웨어 프로젝트를 진행할 때, 파일로 이뤄진 모든 작업과 모든 변화를 추적하고, 여러 개발자(지역적으로 떨어진)가 협력하여 작업할 수 있게 하는 시스템 입니다.

 

한 프로젝트에 대해서 변경된 로그를 모두 관리 하고 또 그 때 상황에 맞게 소스를 빼내 올 수도 있고...

BRANCH 기능으로 또 다른 기능을 생성해서 테스트 완료 후에 MERGE 기능으로 기존 프로젝트에 통합 할 수도 있고...

 

암튼 알아두면 소스관리가 무지무지 편해 진다고 하네요...

 

음... 그래서 오늘부터 CVS에 대해 공부를 좀 해 볼까 합니다.^^

 

 

찾다 보니

http://www.hanb.co.kr/web/sample/1264/eclipse_chap1.pdf

 

잘 정리된 파일이 있어서 링크 걸어 봅니다.^^

 

 

 

2009년 10월 14일 수요일

[ActiveX]웹사이트 접속시 해당프로그램 설치 유무 후 프로그램실행시키기

이 프로그램 내용은 제목과 같이...

 

웹사이트 접속해서 액티브엑스를 실행시키면 프로그램 설치 여부를 체크 하여...

미설치 되었으면 파일을 다운로드 받아서 설치 해 주는것이고...

설치 되었으면 해당 프로그램을 실행해 주는 것입니다.

 

일단 이 엑티브엑스를 만들기 전에...

 

해당 셋업 프로그램에 셋업시 특정 레지스트리에 실행파일 위치를 적어 놓도록 했습니다.

그래서 셋업을 하게 되면 레지스트리에 실행할 디렉토리가 남게 되는 것이고...

그 레지스트리 값을 읽어와서 레지스트리에 값이 있으면 실행

아니면 다운로드 후 실행 과 같은 형태입니다.

 

서버에 올릴 HTML 소스

 

HTML 간략 내용.

<OBJECT

</OBJECT>

이건 액티브엑스 만든후 생성된 파일에 보면 있습니다. 그 내용을 그냥 복사한 내용입니다.

<SCRIPT TYPE="TEXT/JAVASCRIPT"

 

 

  if (parameters.length > 1)
  {
   AX.SETID = request.getId();
  }
 AX.ButtonClick = 1;

/SCRIPT>

이건 URL 의 변수부분을 받아 오기 위한 부분입니다.

가령 http://zeron.co.kr/rfid.html?id=test 이렇게 입력을 하게 되면...

AX.SETID = request.getId(); 여기에서

액티브엑스의 변수 ID 에 test 라는 아이디를 셋팅하게 되는 과정입니다.

AX.ButtonClick = 1; 이건 액티브엑스의 버튼을 클릭하게 하는 것이구요...

 

스크립트 내의

function activeX_self() 함수는 액티브엑스가 설치되어 있는지 유무를 체크합니다.

설치 되어 있다면 위의 엑티브엑스를 실행 했으니...

 

      if(Installed == true)
    {
     window.opener='Self';
    window.open('','_parent','');
    window.close();  //설치되어 있으면 창을 닫는다.
   }
    else
    {
   alert("ActiveX 를 설치 하셔야 합니다..");
    }

 

설치되어 있으면 액티브엑스 실행후 창을 닫고 아니면 아래 화면을 쭉 뿌려 주면서

액티브엑스 설치 할 수 있도록 화면에서 안내를 해 줍니다.

 

제가 웹쪽에 거의 문외한이라 블로그에 화면 덤프 뜬 다음 카피해서 붙여놓은거라...

화면이 예쁘지 않네요...

http://zeron.co.kr/rfid.html  테스트 해 보실 수 있는 주소입니다.

 

 

델파이 ActiveX 소스

 

 

소스에서 보시면

procedure TaxGuestStart.Set_ButtonClick(Value: Integer);
begin
  if Value = 1 then  ProgramExcute;
end;

procedure TaxGuestStart.Set_SetID(const Value: WideString);
begin
  L_stUserID := string(Value);
end;

이 부분이 스크립트와 연동되는 부분입니다.

 

이건 요즘 델파이 거의 사용 안하시지만...

혹시라도 델파이와 액티브 엑스 연동 과정에 필요하신 분 있을까 봐서도 올렸지만...

 

혹시라도 나중에 제가 다시 액티브 엑스 관련된 프로그램 할 수 있으면...

제가 참고 하기 위해...

자료 보관 차원에서 데이터를 올립니다.

 

 

 

 

델파이 7로 Active X 만들기

 

에궁...

제가 머 프로그램을 잘 하는 편이 아니라서...

항상 짜집기 인생에...

머하나 잘하는거 없이 이것저것...

 

닥치면 그제서야 여기 뒤지고 저기 뒤지고...

 

그러다가 엊그제 C/S로 개발된 방문자예약프로그램을 웹에서 직접 버튼 클릭으로 연동시켜 달라는 주문을 받았습니다.

 

처음에는 생각도 하지 못했는데...

 

ActiveX를 만들어서 ActiveX를 실행시켜서...

프로그램 설치 되어 있으면 설치파일 실행 시켜 주고...

설치되어 있지 않으면 다운로드 받아서 설치 해주면 될것 같아서...

ActiveX 만드는 방법을 좀 배워봤습니다.

 

나중에 또 액티브엑스 만들일 있으면 사용하기 위해서 기록 형식으로 남겨 놓습니다.

 

 

 

1. 프로젝트  생성 시 위와 같이 Other 를 선택함

 

 

 

2. ActiveX 탭에서 ActiveForm 을 선택함

 

3. 생성된 폼에서 코딩을 합니다. 코딩한 소스는 허접이지만... 다음 글에 올리겠습니다.

 

4. 코딩을 다 했으면....

 

 

5. Project -> Web Deployment Options 를 클릭합니다.

 

 

6. Target Dir 은 ocxl 파일이 생성될 위치를 선택합니다. 소스와 같은 디렉토리를 선택해도 상관이 없지만 소스디렉토리 선택하니까 확인메시지 한번 뜨네요...

7. Target URL 은 업로드 할 서버주소를 적는데... 이건 HTML 에서 변경가능함

8. HTML dir 은 HTML 파일이 생성되는 위치 입니다. 저는 TargetDir 과 같은 위치로 넣었습니다.

9. Use CAB file compression 을 체크 하면 ocx 파일이 아닌 CAB 파일로 생성이 되어 사이즈가 작아집니다. 웹에 올릴때는 체크하셔서 생성 하시면 나을듯 싶네요...

 

 

 

10. project -> Web Deploy 를 클릭하면 아래와 같이 htm 파일이 생성됩니다.

 

 

================================================================================

위는 액티브엑스 파일을 만드는 과정이었고...

아래는 액티브엑스 파일과 htm 내의 스크립트로 액티브엑스를 동작하게 하기 위해서 통로를 만들어 주는 과정입니다.

 

가령 html 내에서 액티브엑스 내부의 아이디 를 셋팅 하고 싶을때...

아이디 값을 넘겨 주거나 할때 사용됩니다.

 

 

 

1.view -> type Library 를 선택합니다.

 

 

 

 

 

2. 바로 위의 그림과 같이 빨간 탁구채 모양을 선택 후 이미지 처럼 READ|WRITE 등을 선택하면 변수가 하나 생기고 이름을 변경 후 리프레쉬를 하면 함수가 하나 생깁니다.

거기에서 작업을 해 주면 됩니다.