컴퓨터관련

vba, 시스템정보, 경로 얻어오기...펌

맘편한넘 2011. 1. 6. 07:32

Environ이란?
  환경 매개변수의 앞자만 몇글자로 요약한 글자의 함수입니다.
  이 함수를 이용하시면 윈도우 폴더, 운영체제, 임시 저장 폴더(TEMP), 프로세서 정보, 로그온 정보, 사용자 정보, 부팅 드라이브, 도메인명....등과 같은 정보를 API 함수 없이 매우 간단히 불러오실 수 있습니다.
(DOS 시절 "set" 문이 환경 매개변수를 지정해주는 명령어였죠. ^^)

 

WINDIR = Environ("windir")
TEMPDIR = Environ("temp")
USERNAME = Environ("username")

이런식으로 사용하시면 됩니다.


  자, 그럼 한가지 의문점이 생기실거예요. 바로 Environ 안에 들어가는 문자열 값은 어디서 튀어나온거냐구요..^^;


  그건 간단합니다. [시작]-[프로그램]-[보조 프로그램]-[명령 프롬프트] 또는 [한글 MS-DOS]를 실행하여 "set" 이라고 쳐보세요. 그러면 부팅시 지정된 환경 매개변수값들이 나옵니다.
앞에 이름이 바로 Environ 에서 사용되어지는 값들이예요.

 

  OS 마다 공동적으로 사용되는 것은 TEMP, WINDIR, COMSPEC...등이 있습니다. 또 운영체제마다 차이나는게 몇개 있는데 윈NT 계열에서는 도메인정보와 로그온 및 사용자 이름, 프로세서 정보등이 환경 매개변수로 지정되어져 있습니다.

 

  공통으로 사용되는 것은 유용하게 이용 가능하실 겁니다. API 로 몇줄 처리하는것을 VB 함수로 한줄에 끝나네요. ^^ 

 Sub test()
 ?? ?On Error Resume Next
 ?? ?For i = 1 To 40
 ?? ? ? ?Debug.Print i & ", " & Environ(i)
 ?? ?Next
 End Sub
 
 결과(뒤의 내용은 지웠음).
 
 1, ALLUSERSPROFILE=
 2, ANDROID_HOME=
 3, APPDATA=
 4, CLASSPATH=
 5, CommonProgramFiles=
 6, COMPUTERNAME=
 7, ComSpec=
 8, FP_NO_HOST_CHECK=
 9, HOMEDRIVE=
 10, HOMEPATH=
 11, JAVAHOME=
 12, JAVA_HOME=
 13, LOCALAPPDATA=
 14, LOGONSERVER=
 15, NUMBER_OF_PROCESSORS=
 16, ORACLE_HOME=
 17, OS=
 18, Path=
 19, PATHEXT=
 20, PROCESSOR_ARCHITECTURE=
 21, PROCESSOR_IDENTIFIER=
 22, PROCESSOR_LEVEL=
 23, PROCESSOR_REVISION=
 24, ProgramData=
 25, ProgramFiles=
 26, PSModulePath=
 27, PUBLIC=
 28, SESSIONNAME=
 29, SQLPATH=
 30, SystemDrive=
 31, SystemRoot=
 32, TEMP=
 33, TMP=
 34, USERDOMAIN=
 35, USERNAME=
 36, USERPROFILE=
 37, WecVersionForRosebud.2B0=
 38, windir=
 39,?
 40,?