사용자 지정 Visual FoxPro 응용 함께 파일 확장명 연결 방법

기술 자료 번역 기술 자료 번역
기술 자료: 237454 - 이 문서가 적용되는 제품 보기.
이 문서가 보관되었습니다. "그대로" 제공되었으며, 업데이트가 되지 않을 것입니다.
모두 확대 | 모두 축소

이 페이지에서

요약

경우에 따라 개발자는 사용자 지정 Visual FoxPro 응용 프로그램에서 특정 파일 확장명을 연결할 할 수 있습니다. 특정 파일 형식을 특정 작업을 수행하도록 바람직할 수 있습니다. 예를 들어, 개발자가 .ZZ0 파일을 실행 및 .ZZ1 파일 편집 할 수 있습니다. 다음 예제에서는 Visual FoxPro API 호출을 사용하여 에서 이 작업을 수행하는 방법을 보여 줍니다.

추가 정보

참고: 개발자는 Visual FoxPro 6.0이 Visual Studio 6.0 서비스 팩 3 (VFP6_SP3) 메서드를 사용하여 사용자 지정 파일을 여기에 설명된 RUN 위해 에서 합니다. 사용자 지정 Visual FoxPro 응용 프로그램을 통해 프로그램을 컴파일할 수 있는 VFP6_SP3 도입된 때문입니다.

작업 연결 설정

  1. 새 텍스트 파일을 Windows 바탕 화면에서 안에 다음 코드를 만듭니다. RUNTEST.TXT 같이 파일을 저장할:
    MESSAGEBOX("HELLO!",48,"Associated Via API")
    					
  2. 이 파일의 확장명은 .TXT에서 .ZZ0으로 변경하십시오. 파일을 사용할 수 없게 될 수도 경고가 나타나면 를 클릭하십시오.
  3. RUNTEST.ZZ0 Windows 바탕 화면에서 복사본 및 MODITEST.ZZ1 복사본 이름.

    참고: Windows 플래그를 이러한 파일에 있는 아이콘 변경 합니다 및 두 번 "OPEN WITH" 대화 상자가 생성해야 합니다 이 경우 이러한 파일 확장명을 컴퓨터의 모든 응용 프로그램과 관련되어 있지 않습니다. OPEN WITH 대화 상자의 제목은 경우 있지 않은 표시하려면 있을 이러한 확장이 있는 설치된 응용 프로그램에 연결된. 이 문제가 발생하면 불가 본 예제 RUN! 이렇게 하면 컴퓨터에서 파일 연결이 손상될 수 있습니다.
  4. Visual FoxPro 열고 다음 코드를 새 프로그램으로 복사:
    LOCAL nResult,nDisplay, cKeyName, cKeyValue, nKeyLen
    #DEFINE SECURITY_ACCESS_MASK 983103     && SAM value KEY_ALL_ACCESS
    #DEFINE SHCNE_ASSOCCHANGED   0x08000000
    #DEFINE HKEY_CLASSES_ROOT    -2147483648
    #DEFINE SHCNF_IDLIST         0x0000
    
    DECLARE RegCreateKeyEx IN ADVAPI32.DLL;
    	INTEGER,STRING,INTEGER,STRING,INTEGER,INTEGER,INTEGER,INTEGER @, INTEGER @
    
    DECLARE RegSetValueEx IN ADVAPI32.DLL;
    	INTEGER,STRING,INTEGER,INTEGER,STRING,INTEGER
    
    DECLARE RegCloseKey IN ADVAPI32.DLL	INTEGER nHKey
    
    DECLARE SHChangeNotify IN Shell32.DLL INTEGER, INTEGER, STRING, STRING
    
    *~ This creates a Root entry called "aaApp."
    nResult=0
    nDisplay=0
    cKeyName = "aaAPP"
    cKeyValue = "My Application"
    nKeyLen = LEN(cKeyValue)
    RegCreateKeyEx(HKEY_CLASSES_ROOT,cKeyName ,0,"REG_SZ", ;
    	0,SECURITY_ACCESS_MASK,0,@nResult,@nDisplay)
    RegSetValueEx(nResult,"",0,1,cKeyValue ,nKeyLen)
    RegCloseKey(@nResult)
    
    *~ This creates a Root entry called .ZZ0 associated with "aaApp." 
    nResult= 0
    nDisplay = 0
    cKeyName = ".ZZ0"
    cKeyValue = "aaApp"
    nKeyLen = LEN(cKeyValue)
    RegCreateKeyEx(HKEY_CLASSES_ROOT,cKeyName,0,"REG_SZ",;
    	0,SECURITY_ACCESS_MASK,0,@nResult,@nDisplay)
    RegSetValueEx(nResult,"",0,1,cKeyValue,nKeyLen)
    RegCloseKey(@nResult)
    
    *~ This creates a Root entry called .ZZ1 associated with "aaApp." 
    nResult= 0
    nDisplay = 0
    cKeyName = ".ZZ1"
    cKeyValue = "aaApp"
    nKeyLen = LEN(cKeyValue)
    RegCreateKeyEx(HKEY_CLASSES_ROOT,cKeyName,0,"REG_SZ",;
    	0,SECURITY_ACCESS_MASK,0,@nResult,@nDisplay)
    RegSetValueEx(nResult,"",0,1,cKeyValue,nKeyLen)
    RegCloseKey(@nResult)
    
    *~ This sets the command line for files associated with "aaApp." 
    *~ The path will need to be adjusted.
    nResult= 0
    nDisplay = 0
    cKeyName = "aaApp\shell\open\command"
    *~ ADJUST THIS PATH TO REFLECT YOUR DIRECTORY STRUCTURE.
    *~
    cKeyValue = "C:\WINDOWS\Desktop\testexe.exe %1"
    *~
    *~
    nKeyLen = LEN(cKeyValue)
    RegCreateKeyEx(HKEY_CLASSES_ROOT,cKeyName,0,"REG_SZ",;
    	0,SECURITY_ACCESS_MASK,0,@nResult,@nDisplay)
    RegSetValueEx(nResult,"",0,1,cKeyValue,nKeyLen)
    RegCloseKey(@nResult)
    
    *~ Code to refresh icons after association.
    SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL)<BR/>
    CLEAR DLLS
    					
  5. 경로 (TESTEXE.EXE 나중에 빌드되는) 현재 컴퓨터의 바탕 화면 디렉터리를 나타내도록 다음 줄을 조정:
    cKeyValue = "C:\WINDOWS\Desktop\testexe.exe %1"
  6. "KB_ASSOC.PRG" 프로그램을 저장하십시오.

테스트 실행 파일 작성

  1. Visual FoxPro 새 프로젝트를 엽니다.
  2. 다음 코드를 사용하여 코드 탭을 통해 새 프로그램을 만듭니다. Main.prg 같이 프로그램을 저장:
    *~ Double-clicking the file passes its full path to the
    *~ associated program (this .EXE).
    LPARAMETER cFileName
    #DEFINE MB_OK                   0       && OK button only
    #DEFINE MB_ICONINFORMATION      64      && Information icon
    SET SYSMENU OFF
    _SCREEN.CAPTION = "Test Executable"
    
    *~ Check extension of passed file name.
    DO CASE
    	CASE UPPER(RIGHT(cFileName,3)) = "ZZ0"
    *~ This code checks for VFP 6 SP3.
    *~ Exits if anything but.
       IF !("06.00.8492.00" $ ALLT(VERS()))
          MESSAGEBOX("Not using VFP6 SP3. Needed to 'COMPILE' in an .EXE.", ;
             MB_ICONINFORMATION + MB_OK,"Exiting")
          RETURN
       ENDIF
    * File extension is .ZZO and you are in VFP6 SP3. Compile and run.
       COMPILE (cFileName)
       DO (cFileName)
       CASE UPPER(RIGHT(cFileName,3)) = "ZZ1"
    *~ File is .ZZ1, so modify it. Not VFP6SP3 dependant.
          MODI COMM (cFileName)
       ENDCASE
    					
  3. 사용자 지정 아이콘을 사용하여 프로젝트를 연결하고 TESTEXE.EXE 라는 실행 파일로 프로젝트를 빌드하십시오. Windows 바탕 화면에 저장하십시오.

테스트 실행

  1. Visual FoxPro 내부에서 앞에서 만든 "KB_ASSOC.PRG" 프로그램을 실행하십시오. 모양 Windows 바탕 화면에서 MODITEST.ZZ0 및 RUNTEST.ZZ1 파일이 변경된 것을 주의: 지금 있는 TESTEXE.EXE 아이콘이나 Visual FoxPro 아이콘을 표시합니다.
  2. Windows 바탕 화면으로 가서 다음 RUNTEST.ZZ0 두 번 누릅니다. 해당 TEXTESE.EXE 시작하고 "HELLO" 메시지 상자가 나타납니다.
  3. MODITEST.ZZ1 파일을 두 번 클릭하십시오. 해당 TESTEXE.EXE 시작하여 수정을 위해 파일을 열 수 있습니다. 끝내려면 편집 창을 닫습니다.

정리

  1. Visual FoxPro 다시 안에 다음 코드를 새 프로그램 파일에 복사하십시오. CLEANUP.PRG 같이 프로그램을 저장:
    *!* After the demo has run, use this program to remove the registry keys it created.
    #DEFINE SHCNE_ASSOCCHANGED   0x08000000
    #DEFINE HKEY_CLASSES_ROOT    -2147483648
    #DEFINE SHCNF_IDLIST         0x0000
    FILE_KEY1 = ".ZZ0"
    FILE_KEY2 = ".ZZ1"
    EXE_KEY0 = "aaAPP\shell\open\command"
    EXE_KEY1 = "aaAPP\shell\open"
    EXE_KEY2 = "aaAPP\shell"
    EXE_KEY3 = "aaAPP"
    
    DECLARE RegDeleteKey IN ADVAPI32.DLL INTEGER, STRING
    DECLARE SHChangeNotify IN Shell32.DLL INTEGER, INTEGER, STRING, STRING
    
    RegDeleteKey(HKEY_CLASSES_ROOT,FILE_KEY1)
    RegDeleteKey(HKEY_CLASSES_ROOT,FILE_KEY2)
    RegDeleteKey(HKEY_CLASSES_ROOT,EXE_KEY0)
    RegDeleteKey(HKEY_CLASSES_ROOT,EXE_KEY1)
    RegDeleteKey(HKEY_CLASSES_ROOT,EXE_KEY2)
    RegDeleteKey(HKEY_CLASSES_ROOT,EXE_KEY3)
    SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL)
    
    CLEAR DLLS
    					
  2. 앞에서 만든 레지스트리 항목을 삭제하려면 CLEANUP.PRG를 실행하십시오. 두 데스크톱 파일 아이콘이 Windows 플래그를 다시 되돌려야 합니다.
(c) Microsoft의 1999년, 예약 모든 권한. Trevor Hancock, Microsoft Corporation에 의해 기고물입니다.

속성

기술 자료: 237454 - 마지막 검토: 2014년 2월 23일 일요일 - 수정: 2.3
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Visual FoxPro 5.0 Standard Edition
  • Microsoft Visual FoxPro 5.0a
  • Microsoft Visual FoxPro 6.0 Professional Edition
  • Microsoft Windows 95
  • Microsoft Windows 98 Standard Edition
  • Microsoft Windows 98 Second Edition
  • Microsoft Windows NT 4.0
키워드:?
kbnosurvey kbarchive kbmt kbapi kbhowto KB237454 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com