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 등을 선택하면 변수가 하나 생기고 이름을 변경 후 리프레쉬를 하면 함수가 하나 생깁니다.

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

 

2009년 10월 6일 화요일

ActiveX 설치 관련

 

 

 

 

위와 같은 화면이 조회 되지 않는 경우 ActiveX 컨트롤을 설치 하셔야 합니다.

ActiveX 컨트롤을 설치 하시는 방법은 다음과 같습니다.

 

1. 인터넷 창에서 도구 -> 인터넷옵션 선택

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. 보안 탭에서 사용자지정 수준 선택

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3. 보안설정에서 ActveX 컨트롤 및 플러그인 까지 찾아 내려가면

   서명안된 ActiveX 컨트롤 다운로드 를 확인으로 변경 합니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4. 확인 버튼을 클릭하여 적용합니다.

5. 페이지 상단에 다음과 같이 ActiveX 컨트롤을 설치 합니다.