매크로

조회 수 1143 추천 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()과 정규식을 사용한다면 마지막 부분이 좀 더 간단해지긴 하겠네요.

최근 추천글

오핫 제작합니다 1 설입 2024-06-18 23:45 +2
List of Articles
분류 제목 글쓴이 최근변경 추천
자유 혹시 오토핫키 다루는 분들.. 4 쉬르릴 2021.05.20 0/0
자유 오토핫키.! qwaszxc 2014.08.24 0/0
자유 오..토 핫키~ 1 69사단장 2014.11.24 0/0
자유 오토핫키 게시판이 생겨서 좋네요 2 멜라니 2015.05.04 0/0
자유 헛 오토핫키가.... 4 jojoin 2014.12.07 0/0
자유 강좌 안쓰기로 햇습니다 ㅠ 7 캔디염 2019.10.10 0/0
자유 블루스택은 이미지 서치보다는 픽셀 서치를 이용하는게... 11 묵비권 2015.01.05 0/0
자유 대박..오토핫키.. 5 대가루 2014.09.25 0/0
자유 오토핫키가 생각보다 어렵군요 11 광남 2015.05.04 0/0
자유 오토핫키의 매력은... 7 True 2015.05.04 0/0
자유 추억의 오토핫키네요 7 뻬아 2014.10.08 0/0
자유 몬스터 길들이기 모험 매크로를 만들어보았습니다. 4 페르니코 2014.10.14 0/0
자유 몬길 무한실행반복 쓰던건데... 4 오라컴퓨터 2015.09.07 0/0
자유 숨어야산다 님의 블레이드 메크로... 5 손맹 2015.01.16 0/0
자유 오토핫키좀 배워보려는데 2 포테토스틱 2015.05.04 0/0
자유 첫 걸음마 중인데.. 5 나은 2015.05.04 0/0
자유 지니모션 후후... 1 프린치크 2015.01.05 0/0
자유 블레이드 매크로 공유좀 해주실분~~ 9 나은 2015.03.05 0/0
자유 몬길 매크로를 만들어보았습니다~ 8 페르니코 2015.05.04 0/0
자유 매크로 제작 예정 12 프린치크 2015.07.10 0/0
Board Pagination Prev 1 2345678910 ... 28 Next
/ 28

전체 최신 인기글

전체 주간 인기글