매크로

조회 수 1101 추천 0 댓글 10

DropDownList에는 소문자 알파벳과 대문자 알파엣이 같이 있습니다.


Gui, Add, DropDownList, x10 y10 vdrop1, |a|b|c|d|A|B|C|D

Gui, Add, Button, x10 y+3, 저장

Gui, Add, Button, x+3, 불러오기

Gui, Show, AutoSize, Drop예제

return 


GuiClose:

ExitApp


Button저장:

  Gui, Submit, NoHide

  IniWrite, %drop1%, droplist.ini, drop, drop1

return


Button불러오기:

  Gui, Submit, NoHide

  IniRead, drop1_list, droplist.ini, drop, drop1

  GuiControl, ChooseString, drop1, % drop1_list

return


이렇게 소스를 하고나서 drop1에 값을 대문자 D로 선택 후 저장을 하면 ini 파일에는 대문자 D로 저장이 되고

IniRead로 값을 불러와서 Msgbox로 확인을 해도 대문자 D로 나오지만

GuiControl로 변수값을 대입하면 앞쪽에 있는 d로 선택이 됩니다...


만약 반대로 drop1 리스트에 대문자가 앞이로 소문자가 뒤일경우에도 소문자를 저장을 하고 불러오면

앞에 있는 대문자로 선택이 됩니다....


저장한 값으로 선택되게 할려면 DropDownList 옵션에 AltSubmit 넣고

GuiControl, choose 로 하는 방법밖에 없나요..


이렇게 하면 매크로에서 DropDownList 값을 영문으로 받아와서 매크로 진행을 해야하는데..

DropDownList 목록은 알파벳 a-z까지 대소문자를 하려니.. 

소스가 너무 길어져서 다른 방법이 있을까 도움을 요청해봅니다..


  • Hangoon 2018.06.14 11:11

    http://autohotkeykr.sourceforge.net/docs/commands/StringCaseSense.htm

    GuiControl 윗 라인에 StringCaseSence On하시고, 아래 라인에서 다시 바로 Off해주시면 될거 같구요..


    혹은 말씀하신대로 altsubmit 이용하셔도 됩니다.

    잘 생각해보시면 소스가 굳이 길어질 필요가 없어요

    if (drop1_list=1)

     drop1_list:="a"

    else if (drop1_list=2)

     drop1_list="b" ... 


    이런식으로 하시면 당연히 길어지고요. 


    ddl목록이 a부터 Z까지라면

    StringOrder:="abc..........XYZ"

    라고 변수 하나를 스크립트 초반에 선언해두고


    Button불러오기 라벨에는

      Gui, Submit, NoHide

      IniRead, drop1_list, droplist.ini, drop, drop1

      GuiControl, Choose, drop1, % drop1_list

      drop1_list:=SubStr(StringOrder, drop1_list - 1)


    라고 하면 되지 않을까요

    SubStr함수에서 drop1_lis 값에 -1 해주는 이유는


    위에 드랍다운리스트 항목 정의에서 a|b|c|d...로 하지 않고 |a|b|c|d... 로 하셨기 때문입니다

    맨 앞에 빈항목이 하나 있다보니 숫자를 변수 내 문자열 위치로 매치할때 아마 1을 빼줘야 매치가 정확히 될거에요.


    이런식으로 하셔도 되구요... a~Z까지 요소 하나당 문자 하나씩 할당된 배열하나 생성하셔서 해도 되구요.

    근데 아마 저 방법이 젤 간편할거에요. 배열로 만들려면 몇줄 더 쓰셔야할듯,..

  • Rabbit 2018.06.14 14:16
    StringOrder := "|a|b|c|d|A|B|C|D"
    Gui, Add, DropDownList, x10 y10 vdrop1, % StringOrder
    Gui, Add, Button, x10 y+3, 저장
    Gui, Add, Button, x+3, 불러오기
    Gui, Show, AutoSize, Drop예제
    return

    GuiClose:
    ExitApp

    Button저장:
    Gui, Submit, NoHide
    IniWrite, %drop1%, droplist.ini, drop, drop1
    return

    Button불러오기:
    Gui, Submit, NoHide
    IniRead, drop1_list, droplist.ini, drop, drop1
    StringCaseSense, On
    GuiControl, Choose, drop1, % drop1_list
    StringCaseSense, Off
    drop1_list:=SubStr(StringOrder, drop1_list - 1)
    return

    이렇게 해봤는데요;;
    똑같이 되네요...
    혹시 제가 틀린 부분이 있을까요..
  • Hangoon 2018.06.14 16:22
    StringOrder := "abcdABCD"
    Gui, Add, DropDownList, x10 y10 altsubmit vdrop1, |a|b|c|d|A|B|C|D
    Gui, Add, Button, x10 y+3, 저장
    Gui, Add, Button, x+3, 불러오기
    Gui, Show, AutoSize, Drop예제
    return 

    GuiClose:
    ExitApp

    Button저장:
    Gui, Submit, NoHide
    IniWrite, %drop1%, droplist.ini, drop, drop1
    return

    Button불러오기:
    Gui, Submit, NoHide
    IniRead, drop1_list, droplist.ini, drop, drop1
    GuiControl, Choose, drop1, % drop1_list
    drop1_list:=SubStr(StringOrder, drop1_list - 1,1)  ; 이건 제가 빼먹은 부분이네요
    msgbox, % drop1_list
    return

    저도 궁금해서 다시 찾아봤는데 애초에 StringCaseSense는 GuiControl에는 영향을 안준다고 합니다. 
    altsubmit넣고 하는 방법밖에 없는거 같네요
  • Hangoon 2018.06.14 16:23

    만약 StringOrder에 파이프넣고 하시고 싶으시면 배열화해서 쓰시면 됩니다. 사실 이게 더 직관적이긴 하죠.


    StringOrder := "|a|b|c|d|A|B|C|D"

    StrArray:=StrSplit(StringOrder,"|")

    Gui, Add, DropDownList, x10 y10 altsubmit vdrop1, % StringOrder

    Gui, Add, Button, x10 y+3, 저장

    Gui, Add, Button, x+3, 불러오기

    Gui, Show, AutoSize, Drop예제

    return 


    GuiClose:

    ExitApp


    Button저장:

    Gui, Submit, NoHide

    IniWrite, %drop1%, droplist.ini, drop, drop1

    return


    Button불러오기:

    Gui, Submit, NoHide

    IniRead, drop1_list, droplist.ini, drop, drop1

    GuiControl, Choose, drop1, % drop1_list

    drop1_list:=StrArray[drop1_list]

    msgbox, % drop1_list

    return

  • 할거엄따구 2018.06.14 18:34

    Gui, Add, DropDownList, x10 y10 vdrop1, |a|b|c|d|A|B|C|D

    Gui, Add, Button, x10 y+3, 저장

    Gui, Add, Button, x+3, 불러오기

    Gui, Show, AutoSize, Drop예제

    return 


    GuiClose:

    ExitApp


    Button저장:

      Gui, Submit, NoHide

      IniWrite, %drop1%, droplist.ini, drop, drop1

    return


    Button불러오기:

      vDrop := "abcdABCD"

      Gui, Submit, NoHide

      IniRead, drop1_list, droplist.ini, drop, drop1

       nDrop := RegExMatch(vDrop,drop1_list) + 1 ; +1은 맨앞에 빈칸 때문에...

      GuiControl, ChooseString, drop1, % nDrop

    return

    이렇게 한번 해보세요.

  • Hangoon 2018.06.14 19:33
    맨밑의 ChooseString을 Choose로 바꾸면 이 방법도 가능하네요.
    정규식은 대소문자 구문을 하니..
  • 할거엄따구 2018.06.14 22:39
    아 그부분은 안봤네용 ㅎㅎ
  • Rabbit 2018.06.14 23:19

    오오....회사에서 바빠서 못하다가 집와서 애기재우고 봤는데..

    댓글 달아주신 @Hangoon 님/@할거엄따구 님 두분께 정말 감사드립니다.

  • profile
    BotLoi 2018.06.23 00:56
    Loop, 26
    str .= "|" Chr(97 + A_Index - 1) ; a ~ z
    Loop, 26
    str .= "|" Chr(65 + A_Index - 1) ; A ~ Z

    Gui, Add, DropDownList, x10 y10 vdrop1, % str

    Gui, Add, Button, x10 y+3, 저장

    Gui, Add, Button, x+3, 불러오기

    Gui, Show, AutoSize, Drop예제

    return 



    Button저장:

    Gui, Submit, NoHide

    IniWrite, %drop1%, droplist.ini, drop, drop1

    return



    Button불러오기:

    Gui, Submit, NoHide

    IniRead, drop1_list, droplist.ini, drop, drop1

    str_num := Asc(drop1_list)
    if str_num < 97
    str_num := str_num - 65 + 2 + 26 ; A ~ Z
    else
    str_num := str_num - 97 + 2 ; a ~ z

    GuiControl, Choose, drop1, % str_num

    return



    GuiClose:

    ExitApp
  • profile
    BotLoi 2018.06.23 01:01
    StrSplit()과 정규식을 사용한다면 마지막 부분이 좀 더 간단해지긴 하겠네요.

List of Articles
분류 제목 글쓴이 최근변경 추천
자유 블루스택과 녹스에서 히트 돌릴때 색상차이 8 와이로 2017.11.09 4/0
정보 간단한 방법으로 길오아 오토핫키를 만들어보세요^^ 21 럭셔리형아 2018.02.07 4/0
정보 MS오피스 스타일 GUI 프로토타입 6 예지력1 2016.04.16 4/0
질문 오토핫키 에디터 제작. 9 프리헌터스 2015.09.11 4/0
정보 테일스타 내 포인트 조회기 16 와이로 2017.07.04 4/0
정보 팝업 알림, CleanNotify 3 예지력1 2015.11.11 4/0
정보 브레이브 헌터 ... 매크로.. 1 제발등업좀2 2015.07.10 4/0
자유 비활성이미지서치 중간정리(disp,adb) 11 우후훅 2017.04.03 4/0
정보 블루스택 해상도 변경하기... 10 로뎀나무 2015.04.15 4/0
자유 [AutoPM Ver 1.58] 포켓메이플스토리 매크로 8 은다 2015.04.25 4/0
정보 초보가 초보에게;; 핫키 사용법 8 악동주성 2016.09.03 4/0
질문 매크로좀 오랜만에 다시보고자 접속을... 7 joeypre 2021.09.27 3/0
자유 오랜만에 글남깁니다 ㅋ. 매우많이.. 늦었지만 복들 ... 3 제발등업좀2 2016.01.10 3/0
정보 앱아이콘 터치없이 adb로 앱 실행 시키는 방법 18 와이로 2021.01.23 3/0
정보 오토핫키를 간단히 쓰고싶지만 너무 어렵다고 느낄때 9 HyunsD 2018.02.07 3/0
정보 제가 쓰는 픽셀피커입니다(스크립트) 6 와이로 2017.02.11 3/0
정보 지니모션 디바이스(타이틀) 검색 ddl 소스 9 핸콕 2015.10.11 3/0
질문 텍스트를 가져오고 싶습니다. 6 _Crash 2022.12.14 3/0
정보 INI 를 쉽게 사용해봅시다. 11 모바게 2017.11.01 3/0
정보 DynaScript - Child 프로세스로 코드 실행 13 예지력1 2019.07.16 3/0
Board Pagination Prev 1 2345678910 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글