관리 메뉴

ㄴrㅎnㅂrㄹrㄱi

nsWeb - NSIS에서 웹 페이지나 HTML 파일을 보여주자 본문

프로그래밍/NSIS

nsWeb - NSIS에서 웹 페이지나 HTML 파일을 보여주자

님투 2007. 11. 3. 21:05
반응형
nsWeb - NSIS 에서 웹페이지를 보여주는 플러그인 입니다.

이번 코덱팩 업데이트 때 사용된 웹페이지를 보여주는 플러그인입니다.

의외로 다양한 기능을 보유하고 있습니다.


ShowWebInPage.- 사용자 페이지 대화상자에 URL 또는 HTML 파일을 출력합니다.

ShowHTMLInPage.- 사용자 페이지 대화상자에 HTML 문자열(body 태그등이 없는 HTML 형식 문자열)을 출력합니다.

ShowWebInPopUp.- 사용자 페이지 대화상자에 URL 또는 HTML 파일을 출력합니다.(HTML형식 문자열은 안됩니다)

IsInet.- 인터넷 연결이 되어 있는지 확인합니다. 이 함수를 사용해서 URL 을 출력할 때 페이지를 찾을 수 없다는 오류를 피할 수 있겠지요. (1=연결; 0=연결 안 됨)

참조 페이지 " http://nsis.sourceforge.net/NsWeb:_A_plugin_to_display_the_web_browser_control_in_a_custom_page"


기본적으로 위와 같은 4가지 함수를 가지고 있습니다.


설치하면 예제 디렉토리에 Modern UI와 기본 UI 두가지의 예제 파일들이 설치됩니다.


밑에 2가지 예제를 보시면 쉽게 이해가 가실겁니다.


일단 젤 처음에 Page 함수를 사용해서 자신이 사용할 페이지를 하나 생성합니다.


  그 후 인스톨러 처음 시작할 때 호출되는 함수인 .onInit 에서 플러그임을 초기화합니다. 이때 플러그인과 함께 HT

ML파일을 보여줄 것이라면 HTML파일도 같이 풀어줘야합니다.


그 후 Page 함수에서 설정한 이름으로 함수를 작성하여주면 NSIS가 알아서 호출하여 줍니다.


그리 어렵지 않아서 예제를 컴파일해서 직접 돌려보고 한번 보시면 아실 수 있을겁니다.


; Example with classic NSIS style
Name nsWeb
OutFile nsWeb-CUI.exe
InstallDir $EXEDIR
ShowInstDetails show
XPStyle on

Page directory
Page custom "ShowWebControl" "" ": WebBrowser control web dialog"
Page custom "ShowHTMLControl" "" ": WebBrowser control html file dialog"
Page custom "ShowHTMLText" "" ": WebBrowser control html text dialog"
Page components "" "ShowPopURL" ""
Page instfiles

Function .onInit
InitPluginsDir
# Drop everything into the $PLUGINSDIR on init.
# For quick calling at its time
File /oname=$PLUGINSDIR\nsWeb.dll ${NSISDIR}\Plugins\nsWeb.dll
File /oname=$PLUGINSDIR\file1.htm file1.htm
File /oname=$PLUGINSDIR\file2.htm file2.htm
FunctionEnd

Function "ShowWebControl"
nsWeb::ShowWebInPage " http://www.google.com.mx"
FunctionEnd

Function "ShowHTMLControl"
nsWeb::ShowWebInPage "$PLUGINSDIR\file1.htm"
FunctionEnd

Function "ShowHTMLText"
nsWeb::ShowHTMLInPage "<b>I'm a <u>HTML text</u></b>"
FunctionEnd

Function "ShowPopURL"
nsWeb::ShowWebInPopUp "$PLUGINSDIR\file2.htm"
FunctionEnd

Section "Detect Internet?"
nsWeb::IsInet 3
DetailPrint "Do you have Internet connection: $3"
SectionEnd

Section -default
DetailPrint "It's over!"
SectionEnd


; Example with Modern UI NSIS style

!include "MUI.nsh"

Name nsWeb
OutFile nsWeb-MUI.exe
InstallDir $EXEDIR
ShowInstDetails show
XPStyle on

!insertmacro MUI_PAGE_DIRECTORY
Page custom "ShowWebControl" "" ": WebBrowser control web dialog"
Page custom "ShowHTMLControl" "" ": WebBrowser control html file dialog"
Page custom "ShowHTMLText" "" ": WebBrowser control html text dialog"
!define MUI_PAGE_CUSTOMFUNCTION_SHOW "ShowPopURL"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES

!insertmacro MUI_LANGUAGE "English"

Function .onInit
InitPluginsDir
# Drop everything into the $PLUGINSDIR on init.
# For quick calling at its time
File /oname=$PLUGINSDIR\nsWeb.dll ${NSISDIR}\Plugins\nsWeb.dll
File /oname=$PLUGINSDIR\file1.htm file1.htm
File /oname=$PLUGINSDIR\file2.htm file2.htm
FunctionEnd

Function "ShowWebControl"
!insertmacro MUI_HEADER_TEXT "Testing nsWeb plugin" "You are watching http://nsis.sf.net"
nsWeb::ShowWebInPage " http://nsis.sf.net"
FunctionEnd

Function "ShowHTMLControl"
!insertmacro MUI_HEADER_TEXT "Testing nsWeb plugin" "You are watching file1.htm"
nsWeb::ShowWebInPage "$PLUGINSDIR\file1.htm"
FunctionEnd

Function "ShowHTMLText"
!insertmacro MUI_HEADER_TEXT "Testing nsWeb plugin" "You are watching plain HTML text"
nsWeb::ShowHTMLInPage "<b>I'm a <u>HTML text</u></b>"
FunctionEnd

Function "ShowPopURL"
nsWeb::ShowWebInPopUp "$PLUGINSDIR\file2.htm"
FunctionEnd

Section "Detect Internet?"
nsWeb::IsInet 3
DetailPrint "Do you have Internet connection: $3"
SectionEnd

Section -default
DetailPrint "It's over!"
SectionEnd

반응형
Comments