40 - [오토핫키] IniWrite / IniRead

    GUI를 통해 핫키를 바꾸거나 체크박스, 라디오 등을 이용하여 설정값 등을 지정 할 수 있게 되었어요. 그런데 매번 실행할때마다 설정값들을 다시 체크 하기 번거롭죠? IniWrite는 상태값을 저장하며 IniRead는 상태값을 불러오는 역할을 합니다.

     

     

    문법

    IniWrite, Value, Filename, Section, Key

    IniWrite, Pairs, Filename, Section

     

    설명

    Value

    Key의 = (등호) 오른쪽에 작성될 문자

    Pairs

    Key값을 생략하고 ini파일에 쓰여질 완전한 내용.

    Filename

    ini파일의 경로, 이름

    Section

    ini파일 안에서 자료를 구분할 섹션. 즉, 카테고리

    Key

    ini파일에 들어갈 키 이름

     

    문법

    IniRead, OutputVar, Filename, Section, Key [, Default]

    IniRead, OutputVarSection, Filename, Section

    IniRead, OutputVarSectionNames, Filename

     

    설명

    OutputVar

    ini의 Value값을 읽어와서 저장할 변수의 이름

    OutputVarSection

    섹션의 내용전체를 읽어와서 저장할 변수의 이름

    OutputVarSectionNames

    섹션의 이름만 읽어와서 저장할 변수의 이름

    Section

    ini파일에 있는 섹션의 이름

    Key

    ini파일에 있는 키 이름

    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의 값을 받아서 저장을 해줍니다.

     

     

     

     

     

    Posted by 옹봉이