40 - [오토핫키] IniWrite / IniRead
40 - [오토핫키] IniWrite / IniRead
GUI를 통해 핫키를 바꾸거나 체크박스, 라디오 등을 이용하여 설정값 등을 지정 할 수 있게 되었어요. 그런데 매번 실행할때마다 설정값들을 다시 체크 하기 번거롭죠? IniWrite는 상태값을 저장하며 IniRead는 상태값을 불러오는 역할을 합니다. |
|
|
문법
IniWrite, Value, Filename, Section, Key IniWrite, Pairs, Filename, Section |
설명
ValueKey의 = (등호) 오른쪽에 작성될 문자 |
PairsKey값을 생략하고 ini파일에 쓰여질 완전한 내용. |
Filenameini파일의 경로, 이름 |
Sectionini파일 안에서 자료를 구분할 섹션. 즉, 카테고리 |
Keyini파일에 들어갈 키 이름 |
문법
IniRead, OutputVar, Filename, Section, Key [, Default] IniRead, OutputVarSection, Filename, Section IniRead, OutputVarSectionNames, Filename |
설명
OutputVarini의 Value값을 읽어와서 저장할 변수의 이름 |
OutputVarSection섹션의 내용전체를 읽어와서 저장할 변수의 이름 |
OutputVarSectionNames섹션의 이름만 읽어와서 저장할 변수의 이름 |
Sectionini파일에 있는 섹션의 이름 |
Keyini파일에 있는 키 이름 |
Default키 값이 발견되지 않으면 OutputVar에 기본으로 "ERROR"라는 단어가 입력됩니다. |
예제
예제1)IniRead, Auto, Save.ini, 체크, 아이디저장 IniRead, ID, Save.ini, 로그인, 아이디, ID Gui, Add, Edit, w100 vID, %ID% Gui, Add, Edit, W100 vPW Password, **** Gui, Add, Checkbox, vAuto checked%Auto% , 아이디저장 Gui, Add, Button, gBtn default, Login Gui, Show Return
Btn: Gui, Submit, Nohide IniWrite, %Auto%, Save.ini, 체크, 아이디저장 if Auto=1 IniWrite, %ID%, Save.ini, 로그인, 아이디 Else IniWrite, ID, Save.ini, 로그인, 아이디 If (ID="옹봉이" and PW="secretgd") MsgBox, 로그인 되었습니다. Else{ MsgBox, ID혹은 비밀번호가 틀렸습니다. Exitapp } Return |
예제2)IniRead, Hot, Save.ini, 핫키, 핫키, F1 Gui, Add, Hotkey, vHot, %Hot% Gui, Add, Button, gBtn, 적용 Gui, Show Enable=on Return
Btn: Gui, Submit, Nohide IniWrite, %Hot%, Save.ini, 핫키, 핫키 If Enable=on { Enable=off GuiControl, Disabled, Hot Hotkey, %Hot%, Hot, on } Else { Enable=on GuiControl, Enabled, Hot Hotkey, %Hot%, Hot, off } Return
Hot: MsgBox, 핫키 실행!! Return
|
ini파일의 기본 형태는 [SectionNames] Key=Value 이렇게 입력이 됩니다. Key값을 생략하는 방법도 있지만 Key값을 함께 써주는 기본 형태가 가장 깔끔하고 잘 정돈되어있어서 사용하기 좋습니다. 예제1은 앞서 계속 다뤘던 자동로그인에 아이디저장 기능을 추가했습니다. 프로그램을 실행 할 때 우선 IniRead를 실행하여 Save.ini를 불러옵니다. 처음 실행시 불러올 값이 없기 때문에 "ERROR"라는 문자가 출력되는데 이를 방지하기 위해 Default에 "ID"라는 문자를 지정해줬습니다. GUI Edit에는 ini에서 불러온 변수 ID값을 기본으로 잡아주기 위해 %ID%를 사용합니다. Login버튼을 누르면 Checkbox의 값을 "체크"라는 섹션에 "아이디저장"이라는 키 값으로 저장을 합니다. 만약, 아이디저장이 체크 되어있다면 변수 ID를 받아서 "로그인"이라는 섹션에 "아이디"라는 키 값으로 저장을 합니다. 아이디저장에 체크되어있지 않다면 "ID"라는 문자를 "로그인"섹션에 키 값 "아이디"에 저장합니다. 예제2는 Save.ini에서 핫키 값을 불러오며 첫 실행시 "ERROR"를 방지하기 위해 "F1"을 기본값으로 지정 했습니다. 적용 버튼을 누르면 변수 Hot의 값을 받아서 저장을 해줍니다. |