프로그램 개발시 변경되는 데이타의 정보를 담아두기 위해 ini 파일을 이용합
니다.
비쥬얼베이직에서 API FUNCTION 을 이용하여 ini 파일에 데이타를 쓰고 읽는
방법
을 살펴보겠습니다.
1. ini 파일의 구조
[AppName1]
KeyName1=Value
KeyName2=Value
[AppName2]
KeyName1=Value
AppName은 KeyName이 들어가는 일반화된 범주에 표시한다. AppName은 옵션인
데
사용할 경우 각괄호([]) 안에 넣어야 하며 KeyName은 프로그램이 .ini 파일에
서
읽거나 파일에 쓸 때 참조할 값에 대한 텍스트 참조에 해당한다. Value는
KeyName에
할당된 값을 표시한다.
문자열은 인용 부호 속에 넣을 필요는 없으며 숫자 값은 직접 입력한다.
2. WritePrivateProfileString Function 을 이용하여 ini 쓰기
모듈에 다음의 API Function 을 선언한다
Public Declare Function WritePrivateProfileString Lib "kernel32" _
Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpString As Any, _
ByVal lpFileName As String) As Long
인수 설명
------------------------------------------------------------------------
----
lpApplicationName lpApplication Name 인수는 위의 (1)에서 설명한
ApplicationName 문자열에 해당한다.
lpKeyName lpKeyName 인수는 위의 (1)에서 설명한 KeyName에 해당
한다
lpString lpString 인수는 위의 (1)에서 설명한 Value 문자열에
해당한다.
lpFileName lpFileName 인수는 참조중인 .ini파일의 완전히 규정
된
경로와 파일 이름에 해당한다.
------------------------------------------------------------------------
----
사용법 : temp.ini 에서 내용쓰기
temp.ini 파일구조
[APPNAME]
COUNT=10
Private Sub PutINIData()
Dim strFile As String
strFile = "temp.ini"
WritePrivateProfileString "APPNAME", "COUNT", "20", strFile
End Sub
위의 PutINIData Sub를 부르게 되면 ini 파일의 COUNT 값이
COUNT=10 에서 COUNT=20 으로 변경됩니다.
3. GetPrivateProfileString Function 을 이용하여 ini 읽기
모듈에 다음의 API Function 을 선언한다
Public Declare Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String) As Long
GetPrivateProfileString은 String 타입의 값을 리턴한다
인수 설명
------------------------------------------------------------------------
----
lpApplicationName lpApplication Name 인수는 위의 (1)에서 설명
한
ApplicationName 문자열에 해당한다.
lpKeyName lpKeyName 인수는 위의 (1)에서 설명한 KeyName에 해당
한다
lpDefault lpDefault 인수는 문자열에 대해 유지되는 디폴트 값
에
해당한다. 일반적으로 프로그램은 이 매개 변수를 사용
하지
않는다.
lpReturnedString lpReturnedString 인수는 위의 (1)에서 설명한
Value문자열에 해당한다.
nSize nSize 인수는 lpReturnedString 인수 내의 리턴된 문자
열
길이에 해당한다.
lpFileName lpFileName 인수는 참조중인 .ini파일의 완전히 규정
된
경로와 파일 이름에 해당한다.
------------------------------------------------------------------------
----
사용법 : temp.ini 에서 내용읽기
temp.ini 파일구조
[APPNAME]
COUNT=10
Private Sub GetINIData()
Dim strFile As String
Dim strTemp As String
Dim intLen As Long
Dim strCount As String
strFile = "temp.ini"
strTemp = String$(100, 0)
intLen = GetPrivateProfileString("APPNAME", "COUNT", "0", strTemp, _
Len(strTemp), strFile)
strCount = Left$(strTemp, lntLen)
End Sub
위의 GetINIData Sub를 부르게 되면 strCount 변수에 10 이란 값이 들어가게
됩니다.
만약 파일에 COUNT란 항목이 없게되면 API Function의 세번째 필드의 "0" 이
란 값이 대신
들어가게 됩니다.
▶ [API, MOUSE] 마우스커서 움직임 제한하기 [1999/03/18]
윈도우 개발폼의 화면에서 마우스의 움직임을 일정 범위안에서 제한하는 팁입
니다.
우선 이 팁은 API를 이용해서 구현해야 합니다.
1. ClipCursor Function 선언
프로젝트에 모듈을 하나 추가한후 다음과 같이 선언합니다.
Public Declare Function ClipCursor lib "User32" (lpRect As Any) As Long
Type RECT
Left As Ling
Top As Ling
Right As Ling
Bottom As Ling
End Type
2. 마우스의 커서를 제한하기 위한 폼의 Load Event에 다음과 같이 코딩합니
다.
Private Sub Form_Load()
Dim r As RECT
r.Left = 100
r.Top = 100
r.Right = 200
r.Bottom = 200
ClipCursor r
End Sub
출처 : http://vb.infomaster.co.kr/bbs/infoview.ggi?tbname=vbasic&dir=vb&number=247&idx=246&refnum=247&start=60
'프로그래밍' 카테고리의 다른 글
Visual Studio 2010에서 윈도우 임시 폴더 변경시 유의 사항 (0) | 2012.12.14 |
---|