차이점

이 페이지의 선택한 이전 버전과 현재 버전 사이의 차이점을 보여줍니다.

차이 보기로 연결

실행파일이_설치된_폴더_찾기 [2012/07/27 12:01] (현재)
admin 새로 만듦
줄 1: 줄 1:
 +====== 1. 실행파일이 설치된 폴더 찾기 ======
 +
 +외부 실행파일이 설치된 폴더의 위치를 찾고 실행파일을 구동시키는 예제입니다. 단, 레지스트리에 설치 정보가 있을 때 가능합니다.
 +
 +아래 예제는 아래아한글이 설치된 폴더를 찾고 sample.hwp파일을 여는 예제입니다.
 +
 +NSAMPLES\REFRENCE\EXEFIL.PRG 참조
 +
 +<code>
 +#include "npp.ch"
 +#define  HKEY_LOCAL_MACHINE      2147483650        // 0x80000002
 +
 +FUNC MAIN()
 +
 +     Local cFile := "sample.hwp"
 +           RunHwp( cFile )
 +
 +Return Nil
 +</code>
 +
 +<code>
 +FUNC RunHwp( cHwpFile )
 +
 +     Local cBuffer  := SPACE(5)
 +     Local nHandle  := FOPEN( cHwpFile )
 +     Local cExecute := ""
 +
 +     FREAD( nHandle, @cBuffer, 5)
 +
 +     iF "饉" $ cBuffer
 +        iF EMPTY( HWPPATH() )
 +           MsgStop( "아래아한글2002가 설치되어 있지 않습니다.","소프트웨어 미설치")
 +           Return Nil
 +        Else
 +           cExecute := HWPPATH()+"HWP\HWP " + cHwpFile
 +        End
 +     End
 +
 +     iF "HWP" $ cBuffer
 +        iF EMPTY( HWPWPATH() )
 +           MsgStop( "아래아한글이 설치되어 있지 않습니다.","소프트웨어 미설치")
 +           Return Nil
 +        Else
 +           cExecute := HWPWPATH()+"HWPW " + cHwpFile
 +        End
 +     End
 +
 +     WINEXEC( cExecute )
 +
 +Return Nil
 +
 +
 +FUNCTION HWPWPath()  // 아래아한글 97 설치 폴더 찾기
 +
 +     Local cWinSerial := SPACE(200)
 +     Local oReg32 := tReg32():New( HKEY_LOCAL_MACHINE, "SOFTWARE\HNC\HNC Path\")
 +           // 레지스트리 편집기(regedit)를 이용하여 아래아한글 97 폴더 찾음
 +
 +     if oReg32:nHandle == 0
 +        oReg32:Close()
 +        Return Nil
 +     Else
 +        cWinSerial := oReg32:Get("HNC" , cWinSerial ) // ( 이름, 데이터  )
 +        oReg32:Close()
 +     endif
 +
 +Return alltrim( cWinSerial )
 +
 +
 +FUNCTION HWPPath()  // 아래아한글 2002 설치 폴더 찾기
 +
 +     Local cWinSerial := SPACE(200)
 +     Local oReg32 := tReg32():New( HKEY_LOCAL_MACHINE, "SOFTWARE\HNC\Shared\")
 +     if oReg32:nHandle == 0
 +        oReg32:Close()
 +        Return Nil
 +     Else
 +        cWinSerial := oReg32:Get("HNC Path" , cWinSerial )
 +        oReg32:Close()
 +     endif
 +
 +Return alltrim( cWinSerial )
 +</code>
 +
  
 

Link categories 1

Link categories 2