728x90
목차

1. FileExist() - 파일의 상태 속성

2. FileGetSize - 파일의 크기

3. FileGetTime / FileSetTime - 파일의 시간정보

 

 

자기 자리에서 개인용 매크로를 사용할 때는 지금 상태에 대해 개발자가 100% 알고 있습니다.

그래서 큰 실수가 일어나지 않지만 같은 파일에 여러가지 프로토콜이 연결되면 복잡해지기 시작합니다.

특히 사용자가 직접 접근해서 수정하는 상황에서는 예상할 수 있는 일들이 너무 많아집니다.

그런 때 사용하는 파일의 현재 상태를 알아오는 FileExist()와 그외 명령어를 몇개 정리하겠습니다.

 

 

1. FileExist()

 

① FileExist의 의미와 매개변수

 

AttributeString := FileExist(FilePattern) : 파일이나 경로명인 "FilePattern"이 있는지를 확인하고 속성을 불러와 변수 " AttributeString"에 입력합니다.

  • FilePattern : 파일명이나 경로의 이름입니다. 전체 경로를 입력하지 않으면 지금 선택되어 있는 %A_WorkingDir%에 저장됩니다. 보통의 경우에는 %A_WorkingDir%은 메크로 실행파일이 있는 폴더입니다.
  • 반환값(AttributeString) : 한문자로 된 속성값이 반환됩니다. 만일 파일/경로가 없는 경우에는 빈문자가 반환됩니다. 문자 "False"가 아니라 빈문자가 되어 "False" 상태로 간주되는 것입니다. 사용하려면 논리 연산자나 if 같은 명령어와 조합해야 합니다.

 

② FileExist의 반환값

 

FileExist가 반환하는 값들은 정해져 있습니다.

파일의 상태에 따라서 다른 값을 불러옵니다.

Auto Hot Key 공식 포럼  FileExist() - Syntax & Usage | AutoHotkey (ahkscript.github.io) 에서 불러왔습니다.

 

  • R = READONLY(읽기 전용) : 파일의 속성에서 읽기 전용으로 되어 있는 경우입니다.
  • A = ARCHIVE(보관) : 파일에 저장되 있는 경우로 거의 대부분 속성을 가지고 있습니다.
  • S = SYSTEM(시스템) : 시스템 파일을 의미하고 "windows"등 설정폴더에 있는 .dat 파일등이 해당됩니다.
  • H = HIDDEN(감춤) : 숨김 속성을 가지고 있는 폴더입니다.
  • N = NORMAL(정상)
  • D = DIRECTORY(디렉토리) : 파일이 아닌 경로명일 때 사용됩니다.
  • O = OFFLINE(오프라인)
  • C = COMPRESSED(압축) : 압축파일인데 window가 압축한 zip 파일은 해당하지 않습니다.
  • T = TEMPORARY(임시)
  • X : 아무 속성이 없을 때 
  • 여러 개의 속성이 해당할 때는 여러단어를 반환합니다. RAH : 읽기전용의 숨겨진 파일

 

사용자가 파일에 임의로 변경한 내용이 아닌 파일의 속성 자체가 변해야 합니다.

 

 

③ 사용예시

 

^F3:: ;예시 1번 Windows 폴더의 시스템 파일입니다.

testnm := FileExist("C:\Windows\bootstat.dat")
msgbox %testnm%

return

^F4:: ;예시 2번

testnm := FileExist("abcd.exe")
if !testnm
{
msgbox "파일이 존재하지 않습니다."
}

return

 

사용결과 예시 1번의 경우 AS(보관파일, 시스템 파일)이 반환되고, 예시 2번은 존재하지 않는다는 매시지가 출력됩니다.

명령어의 동작은 심플하지만 사용할 수 있는 상황은 많습니다.

 

예시1의 결과 / 예시 2의 결과

 

320x100

 

 

2. FileGetSize

 

FileGetSize, OutputVar , [Filename], [Units] : 파일(Filename)의 크기를 읽어와서 변수( OutputVar)에 입력합니다.

  • OutputVar : 변수의 이름입니다. 여기에 숫자형식으로 결과가 입력이 됩니다.
  • Filename : 크기를 읽어오고 싶은 파일의 이름입니다. 경로명을 입력하지 않으면 %A_WorkingDir%(현재폴더)에서 파일명을 찾습니다. 아예 입력하지 않으면 %A_WorkingDir% 가장 앞의 파일을 가지고 옵니다.
  • Units : 출력을 하는 단위입니다. 입력하지 않으면 Byte 단위로 가지고 옵니다. K = 킬로바이트, M = 메가바이트입니다.

 

경로명을 입력할 경우 순수하게 경로의 크기인 0을 불러옵니다.

경로안에 접근하여 모든 파일의 합을 구하도록 해야합니다.

사용 예제는 심플합니다.

^F3:: ;

FileGetSize testnm, 예제 24.zip, k
msgbox %testnm%

return

 

 

 

3. FileGetTime / FileSetTime

 

파일에는 기록되고 읽은 시간 정보가 있습니다.

시간정보를 읽어오는 FileGetTime과 다시 쓰는 FileSetTime입니다.

Windows에서는 파일에 속성에 확인할 수 있습니다.

 

Windows에서 시간 보기

 

FileGetTime, OutputVar , [Filename], [WhichTime] : 파일이나 경로의 정보를 불러옵니다.

  • OutputVar : 변수의 이름입니다. 여기에 결과가 입력이 되는데 YYYYMMDDHHMIMSS로 입력되며 형식은 FileSetTime에서 변경할 수 있습니다. 운영체계에서 사용하는 시간을 불러옴으로 보통은 현지시간입니다.
  • Filename : 시간을 읽어오고 싶은 파일의 이름입니다. 경로명을 입력하지 않으면 %A_WorkingDir%(현재폴더)에서 파일명을 찾습니다. 아예 입력하지 않으면 %A_WorkingDir% 가장 앞의 파일을 가지고 옵니다.
  • WhichTime : 어떤 시간을 가지고 올지 결정하고 비어있으면 M입니다.
    M = 수정한 날짜/시간
    C = 만들어진 날짜/시간
    A = 엑세스한 날짜/시간

설명이 단순한 만큼 사용하는 예시도 간단합니다.

예시) FileGetTime, TestNm, 예제.txt, C

 

불러오는 파일이 있으니 쓸 수도 있습니다.

쓰게되면 원래 시간에 관한 정보가 없어짐으로 보통 특수목적으로 접근하여 자주사용하지는 않습니다.

 

FileSetTime , [YYYYMMDDHH24MISS], [FilePattern], [WhichTime], [OperateOnFolders], [Recurse] : 파일이나 경로명의 날짜시간 정보를 변경합니다. 추천할 수는 없지만 매개변수 전체를 입력하지 않아도 동작할 수 있습니다.

 

  • YYYYMMDDHH24MISS : 시간을 입력할 수 있습니다. 시간 형식에 FileSetTime, YYYY.MM.DD 이라고 입력하는 방식이 추천됩니다. 비어 있을 경우 OS가 알려주는 지금시간으로 입력됩니다. 참고로 1601년 미만은 지원하지 않는다고 합니다.
  • FilePattern : 파일명이나 경로명을 입력합니다. 경로명을 입력하지 않으면 %A_WorkingDir%(현재폴더)에서 파일명을 찾습니다. 이 자리를 비어두면 %A_WorkingDir% 가장 앞의 파일을 가지고 옵니다.
  • WhichTime : 어떤 시간을 가지고 올지 결정하고 비어있으면 M입니다.
    M = 수정한 날짜/시간
    C = 만들어진 날짜/시간
    A = 엑세스한 날짜/시간
  • OperateOnFolders : 동작방식을 결정합니다. 입력하지 않으면 0으로 처리됩니다.
    0 : 지정한 파일만 시간을 변경합니다.(디폴트)
    1 : 와일드 카드에 포함되는 모든 파일과 폴더가 처리됩니다.
    2 : 파일이 있는 지정 경로(폴더)의 시간만 변경합니다.
  • Recurse : 0으로 입력할 경우 입력한 경로(폴더)에만 해당하여 작동합니다. 1을 입력하면 하위폴더까지 모두다 변경합니다. 입력하지 않으면 디폴트는 0으로 되어 있습니다.

 

이 명령은 와일드 카드를 쓸 수 있는데 C:\내 문서\*.txt의 경우 와일드카드 *, 경로내의 모든 txt 파일로 인식합니다.

파일과 폴더의 경로명이 259문자를 뛰면 동작하지 않습니다. 그 파일을 무시하고 다음으로 넘어갑니다.

 

예제) FileSetTime, 20141105, C:\Temp\*.*, M : Temp 폴더의 모든 파일의 수정한 날짜를 2014년 11월 05일로 변경합니다. 시간은 입력하지 않아서 00시 00분 00초로 입력됩니다.

 

 

 

 

반응형
728x90

다른 언어를 사용한 프로그램도 그렇겠지만, 사용하다보면 따로 기록해야 하거나 그 기록을 불러와야 합니다.

주로 메모장(txt, ini)등을 사용하는 편이 쉽기도 하고 필요한 메모리도 가벼워 선호하는 방식입니다.

외부 파일에 접근하여 내용을 잃거나 쓰는 FileOpen 명령어에 대해서 알아보겠습니다.

 

 

1. Fileopen의 뜻과 접근함수 

 

FileOpen(Filename, Flags , [Encoding]) : 파일을 열어서 특정내용을 읽거나 파일에 새 내용을 기록하는 기능을 지원하는 명령어입니다.

  • Filename : 접근할 파일의 경로 + 이름입니다. 이름만 입력할 경우 지금 메크로가 실행되고 있는 경로인 "A_WorkingDir"에서 파일을 찾습니다.
  • Flags : 파일에 접근하는 방식을 결정합니다. 읽을 때는 "r"(표준입력)을 쓸때는 "w"를 사용합니다.
  • Encoding :파일에 텍스트 입출력에 사용될 코드 페이지입니다.(UTF-8, UTF-16), 입력하지 않으면 A_FileEncoding의 값이 입력되는데 보통 따로 조작하지 않아도 기본 앤코딩 값이 입려되어 있습니다.
  • "변수명" := FileOpen(Filename, Flags , [Encoding])
    형식으로 사용합니다. 한번 파일을 오픈하여 사용하기 위해 메소스를 호출할 때는 변수명으로 사용합니다.

 

접근 모드가 다양하게 지원됩니다.

접근하는 방식은 Flag에 무엇을 입력하냐에 따라 달라집니다.

각 모드에 대해서 알아보겠습니다. 괄호 안()은 십진수와 16진수 표기법입니다.

 

<<접근 모드>>

 

  • r(0, 0x0) : Read를 의미하며 읽기 기능들을 사용할 수 있습니다. 파일이 해당 경로에 없으면 실패합니다.
  • w(1, 0x1) : Write를 의미하며 쓰기 기능들을 사용할 수 있습니다. 파일이 없으면 새로 생성하며, 있을 경우 덮어쓰기 함으로 주의가 필요합니다.
  • a(2, 0x2) : Append를 의미하며 쓰기 기능들을 사용할 수 있습니다. 파일이 없으면 새로 생성하고 있으면 기존 파일의 끝으로 이동합니다.
  • rw(3 0x3) : Read / Write를 의미하며 쓰고 읽는 기능들을 사용할 수 있습니다. 파일이 없으면 새로 생성하고 파일이 있는 경우 내용을 덮어 쓰니 주의가 필요합니다.
  • h : Filename이 객체안에 사용하는 핸들임을 나타내어 길이나 상태를 점검할 수 없고 따라서 Close가 동작하지 않습니다. 이동하거나 지워질 수 있는 파일에는 사용이 안할 것이 권장됩니다.

 

 

2. File 형식에 사용할 수 있는 매소드

 

예시) ex_file = fileopen("C:\dou", "r)

 

이럴때 변수명 ex_file은 파일객체가 되며, FlieOpen로 호출된 파일객체는 쓰고 읽기 위한 인터페이스가 제공됩니다.

인터페이스를 사용하면 문서작업을 직접할 때와 마찬가지로 파일을 쓰고 읽을 때 포인터가 돌아다니게 됩니다.

 

방금쓴 글자 뒤에 포인터가 위치합니다.

 

파일을 오픈하면 파일의 가장 처음에 포인터가 있습니다.

기능들을 한번에 여러개 사용할 경우에는 포인터가 옮겨진 위치를 유의하면서 사용해야 합니다.

 

<<메소드>>

 

  • Read : 지금 포인터 위치에 뒤에서 부터 파일에 내용을 읽습니다. 다 읽고나서 그 뒤문자로 포인터가 이동하는데 이 경우는 맨 마지막이 됩니다.
  • ReadLine : 지금 포인터 위에서 뒤에 있는 문자열을 한줄 읽어입니다. 사용한 후에는 포인터가 다음으로 합니다.
  • Write : 지금 포인터 위치에서 내용을 쓰고 포인터는 내용의 뒤로 이동합니다.
  • WriteLine : 지금 포인터 위치 다음 줄에 내용을 쓰고 포인터는 내용의 뒤로 이동합니다
  • Seek : 포인터가 해당 숫자 만큼 이동합니다.

 

320x100

 

 

3. 사용 예시

 

바탕화면에 있는 LIST.txt의 내용을 읽어 오는 예시를 작성하겠습니다.

 

 

^F3:: ;Ctrl + F3 키를 단축키로 설정했습니다.

file := FileOpen("C:\Users\jong\Desktop\LIST.txt", "r") ;경로의 파일을 읽기로 열었습니다.

newstr := file.Readline() ; 첫 줄의 내용을 newstr1 에 입력합니다.
newstr2 := file.Read() ; 그 뒤에 내용을 newstr 에 입력합니다.

msgbox, %newstr% `n`n %newstr2%

file.close ;파일을 닫았습니다.

 

 

결과는 MSGBOX로 출력했습니다. 

원본 파일에서 ReadLine으로 첫줄을 불어온 후 Read로 나머지를 불러 왔습니다.

 

 

 

 

 

 

반응형
728x90

메크로 환경에서 모든 파일을 미리 열어놓고 진행 하는 것이 힘들 때가 있습니다.

필요할 때 파일을 열수도 있어야 하고요, 프로그램을 오픈하는 그자체가 메크로의 주요기능이 되기도 합니다.

오토핫키에서 파일을 열 때 사용하는 RUN 명령어에 대해서 알아보겠습니다.

 

320x100

 

 

1. RUN

 

Run, Target {, WorkingDir, Options, OutputVarPID}  : RUN은 Target 파일을 찾아서 오픈합니다. 오픈할땐 Window에서 설정한 기본 어플리케이션을 사용합니다

 

  • Target : 파일의 이름, 혹은 경로를 포함한 이름입니다. 경로를 포함하지 않을 경우에는 실행한 스크립트 파일(해당파일)과 같은 폴더(A_WorkingDir)에서 불러옵니다.
  • WorkingDir : 파일의 경로명입니다. 입력하지 않으면 실행 파일이 있는 폴더(A_WorkingDir)가 선택됩니다.
  • Option : 파일을 열었을때 상태를 설정합니다.
     - Max, Min : 파일의 창을 최대,최소로 하여 실행하지만 어플리케이션에 따라서 무시될 수도 있습니다.
     - Hide : 숨긴상태로 프로그램을 오픈합니다.
     - UseErrorLevel : ErrorLevel이라는 내부변수를 사용할 것인지 결정합니다.
    파일을 찾았을때는 0, 파일을 못찾거나 하는등 에러가 발생하면그 외의 숫자가 들어갑니다.
  • OutputVarPID : RUN을 통해서 오픈되는 프로그램의 고유 프로세스 ID를 저장할 변수의 이름을 할당합니다.
  • RUN에 내부에 들어갈 경우 오토핫키에서는 실행되도 프로그램이 늦게 결과를 반환할 수 있습니다.
    그럴 때는 하나의 창이 열리기 기다리는 코드인 WinWait ahk_pid %OutputVarPID% 명령어를 사용하는게 좋습니다.
    (도움말 참고한 내용입니다.)

 

 

예시1) RUN C:\Users\jong\Desktop\임시\예시.txt : "C:\Users\jong\Desktop\임시" 경로의 "예시.txt" 파일을 오픈합니다.

예시2) RUN 예시.txt, C:\Users\jong\Desktop\임시 : 예시1과 같습니다.

예시3) RUN https://toast-story.tistory.com : 사이트로 연결합니다.

예시4) RUN mailto:ex@exsite.com : 기본 메일 프로그램으로 대상에게 메일을 작성합니다.

 

RUN은 파일을 오픈하기도 하지만 사이트를 오픈하는 등 생각보다 응용이 많습니다.

그 중 하나는 RUNWait입니다.

 

RunWait, Target {, WorkingDir, Options, OutputVarPID} : RunWait는 프로그램이 실행되어 있는 동안은 코드가 정지되어 있다가 해당 프로그램이 종료 후에 뒷줄로 넘어가 실행합니다.

 

 

2. RUN의 속성 기능들

 

그냥 프로그램을 오픈하는게 아니라 경로명 앞에 속성 명령을 붙여서 파일에 접근하는 동작을 다르게 할 수 있습니다.

 

  • *verb : 시스템에-정의된 또는 맞춤 문맥 메뉴를 사용할 수 있습니다.(예 *RUNas)
  • properties : 파일이나 폴더를 오른쪽으로 클릭했을 때 선택할 수 있는 속성창을 불러옵니다.
  • find : Target이 파일이 아니라 폴더 경로여야 합니다. 파일의 탐색기를 열고 검색기능을 활성화 시킵니다.
  • explore : 지시된 폴더에 탐색기를 실행합니다.
  • edit : 실행한 파일이 실행프로그램과 별도로 edit가 설정되어 있을때 edit 어플리케이션을 활성화 합니다.
  • open : 그냥 run을 실행한 것과 같이 프로램을 실행시킵니다. 보통은 사용할 필요가 없습니다.
  • print : Target 파일이 연관된 인쇄기능과 연결되어 있을 때 미리 해둔 설정으로 인쇄합니다.

 

예시) RUN properties C:\Users\jong\Desktop\임시\예시.txt : 예시.txt라는 파일의 속성에 접근합니다.

 

속성창을 부릅니다.

 

 

3. 그외 기능

 

%Comspec% 속성을 통해서 윈도우의 Commend 창을 부릅니다.

Window Commend 창에서 뭔가를 명령하는 것은 Send를 사용하거나 하는 별도의 동작이 필요합니다.

예시) RUN %Comspec%

 

 

*RunAs는 마우스 오른쪽키를 눌러서 관리자 권한으로 실행한 것과 같은 효과를 냅니다.

 

 

 

반응형
728x90
목차

1. PixelSearch - 색상을 기준으로 픽셀을 찾습니다.

2. PixelGetColor - 픽셀의 색상을 읽어서 반영합니다.

 

오토핫키에서 화면에서 특정 색상으로 이벤트를 지정할 수 있습니다.

작은 아이콘이나 매뉴버튼을 검색하기 위해서 사용할 수 있습니다.

게임 메크로를 작성하실 때는 고유 유니크 아이템을 찾기 위해서도 쓸 수 있습니다.

(보라색이나 황금색같이 최주요 아이템에만 사용하는 색상이 있는 경우에 유용합니다.)

 

320x100

 

 

1. PixelSearch - 색상을 기준으로 픽셀을 찾습니다.

 

PixelSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ColorID [, Variation, Mode] : 색상으로 픽셀을 찾아줍니다.

PixelSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ColorID [, Variation] : 2.0버전에서 Mode가 생략되었습니다.

 

  • OutputVarX, OutputVarY : 찾을 이미지의 좌표가 저장되는 변수를 지정합니다.
  • X1, Y1 : 찾기를 시작할 위치입니다.
  • X2, Y2 : 찾기를 끝낼 위치입니다.
  • ColorID: 찾을 색상 값을 16진수로 써주시면 됩니다. 기본값이 RGB가 아닌 BGR 순서로 써주셔야 합니다.
    (2.0 버전에서는 RGB가 기본입니다.)
  • [Variation] : 색상의 허용 오차값입니다. (정확히는 음영의 허용정도) 쉐이딩에 허용값으로 0~255로 입력이 가능하고 255는 모든 쉐이딩을 허용합니다.
  • [Mode] : MODE는 매개변수입니다.
                - Fast : 화면을 줄단위로 검색하여 속도와 CPU 사용양을 매우 절약합니다.
                - RGB : 사용하는 색상을 RGB 형식으로 변경합니다.
  • 2.0버전에는 MODE가 생략되고 RGB가 기본형식으로 변경되었습니다.

 

스크랩트에 실행되는 그 때 화면위에 있어야 합니다.

다른 창에 가려지거나 깜빡깜빡거리는 이미지에서는 검색이 잘 안될 수 있습니다.

 

 

2. PixelGetColor - 픽셀의 색상을 읽어서 반영합니다.

 

PixelGetColor, OutputVar, X, Y , [Mode] : 1.0버전입니다. 픽셀의 색상을 읽어서 반영합니다.

PixelGetColor(X, Y [, Mode]) : 2.0버전입니다. 명령어 자체 Return 값을 반환합니다.

 

  • OutputVar : 색상값을 저장하는 변수입니다.
  • X: 색상 값을 가져올 x 좌표
  • Y: 색상 값을 가져올 y 좌표
  • Mode : 매개변수 입니다. 세 가지 옵션이 있습니다.
              - ALT : 대체방법을 사용해서 색상을 추출하는데 보호되는 영역에 있어 색을 추출하기 어려울 때 사용합니다.
                         약간 느려집니다.(공식 홈페이지에서는 10% 정도라고 이야기 합니다.)

              - SLOW : 정상방법보다 3배 더 시간을 사용하지만 색상을 잘 추출합니다. ALT로도 색상을 추출할 수 없을
                            경우에 사용할 수 있습니다.

              - RGB : 컬러의 기본은 BGR인데 이걸 RGB로 변경합니다. 2.0버전에는 RGB가 기본이고, 이 속성이 없습니다.

 

(예시)

PixelGetColor, aa, 100, 100, RGB

msgbox, %aa%

추출한 색상

 

0x(색상코드) 6자리 색상 코드로 출력합니다.

완전히 투명한 창위에서는 뒤에 픽셀의 색상을 읽습니다.

투명도가 있는 경우에는 보이는 색상으로 값을 불러 옵니다.

 

 

 

반응형
728x90
목차

1. ImageSearch - 이미지 찾기

2. 적용 가능한 매개변수

3. 예시 코드

4. 인식성능

 

오토핫키에서 메크로를 보다 향상시켜서 마우스나 키보드를 컨트롤 하면 기준점이 중요합니다.

어디에 커서가 있고 창이 있는지가 매우 중요합니다.

게임이나 작업환경에서 반복적인 아이콘을 찾아주는 기능이 있습니다.

개체의 이미지를 기준으로 위치를 찾아주는 ImageSearch에 대해서 알아보겠습니다.

 

320x100

 

1. ImageSearch - 이미지 찾기

 

ImageSearch &OutputVarX, &OutputVarY, X1, Y1, X2, Y2, ImageFile : 이미지를 찾아 위치를 표시합니다.

 

  • &OutputVarX, &OutputVarY : 찾을 이미지의 좌표가 저장되는 변수를 지정합니다.
  • X1, Y1 : 찾기 시작할 위치입니다.
  • X2, Y2 : 찾기 끝낼 위치입니다.
  • ImageFile : 이미지 파일의 이름이나 경로를 입력합니다. 같은 폴더에 있는 경우에는 이름만 입력해도 됩니다.
  • GIF, JPG, BMP, ICO, CUR, ANI를 기본적으로 인식합니다. 운영체계에 따라서 다른 확장자도 사용할 수 있습니다.

 

X1,Y1에서 부터 X2,Y2가 됩니다.

0,0에서 A_ScreenWidth, A_ScreenHeight으로 하면 화면 전체를 검색합니다.

범위내의 이미지를 찾습니다.

 

 

 

2. 적용 가능한 매개변수

 

ImageFile 앞에 매개변수를 적용할 수 있습니다.

 

  • *icon(N) : 파일이름이 아닌 따로 지정해둔 아이콘 그룹을 사용합니다. (예 : *icon2, 아이콘 그룹 2번으로 검색합니다.)
  • *(n) : 색에 대한 민감도를 조절합니다. 색이 약간 쉐이딩 변형된 경우를 받아들이는데 0~255까지 입력할 수 있고 숫자가 클수록 둔해집니다. 255가 되면 모든 색상의 쉐이딩을 무시하고 형태만으로 검색합니다.
  • *Trans(N) : 무시할 색상을 지정합니다. 주로 배경색을 지정하는 White와 Black이 많이 사용됩니다. 색코드를 써도 됩니다. (예 : *TransWhite 혹은 *TransAB2518 혹은 *Trans0xAAFF00)
  • *w(N)와 *h(N) : 이미지의 크기를 지정합니다. 기본적으로 소형 아이콘 크기로 조정해서 형태가 같은 그림을 찾습니다. 하지만 크거나 작게 변경해서 이미지를 추적하는 성능을 변경할 수 있습니다. -1은 자동 변화입니다.
    (예 : *w300 *h-1 너비(w)는 300이고 높이(h)는 거기에 맞춰서 자동으로 변경합니다.)

예시 : ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, *2 *TransWhite *w100 *h-1 그림.bmp

 

 

3. 예시 코드

 

(예시)

같은 폴더의 그림 1.png를 찾아서 좌료를 출력하게 합니다.

ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *TransWhite 1.png
msgbox, %FoundX% " %FoundY%
return

(결과)

 


4. 인식성능

 

생각보다는 잘 인식이 되지 않습니다. 매개변수를 잘 활용해서 최적화 해야 합니다.

같은 폴더에 넣고 할 때가 오류가 적은 것 같습니다.

그리고 개인적인 생각은 BMP 확장자가 가장 잘 인식되는 것으로 보입니다.

 

그래도 최적화가 어려운게 요즘 게임들은 날씨/시간에 따라 쉐이딩이 다르고, 다양한 아이콘이 지원됩니다. 

또 패치등을 통해서 수시로 변경되기 때문에 열심히 짜둔 메크로가 무용지물이 되기도 합니다.

메크로를 작성할 때는 얼마나 오래 쓸지도 고려해야 하더라고요.

 

반응형
728x90
목차

1. Send, {Click} - 마우스를 입력해서 클릭하기

2. MouseMove - 마우스 움직이기

3. MouseClick - 마우스 클릭하기

4. MouseClickDrag - 드레그 앤 드롭

5. MouseGetPos - 마우스의 정보를 입력

 

오토핫키는 매크로를 만드는데 최적화 되어있습니다.

매크로를 만들려면 입력 기능을 다루어야 하는데 키보드는 따로 포스팅 했습니다.

오늘은 마우스에 대해서 알아보겠습니다.

마우스를 컨트롤하기 위한 좌표계도 이전에 포스팅 했으니 참고하세요.

 

320x100

 

 

1. Send, {Click} - 마우스를 입력해서 클릭하기

 

Send 기능으로 마우스도 컨트롤 할 수 있습니다.

 

① 기본적인 옵션은 Click입니다.

 

Send, {Click X좌표, Y좌표, 클릭횟수}
Send, {Click 200, 100, 0} ; 커서를 좌표계 (200, 100)으로 옮깁니다.(0번클릭)
Send, {Click 500, 300, 2} ; 커서를 좌표계 (500, 300)으로 옮겨 2번 클릭합니다.

 

② SetMouseDelay, Delay [, Play]

 

SetKeyDelay과는 기능과 사용법이 같지만 마우스동작에만 별도로 작용합니다.

 

SetMouseDelay, Delay [, Play] : 마우스의 각동작에 딜레이를 입력합니다.

 

  • Delay : ㎳ 단위의 대기시간입니다. 마우스를 움직이고 클릭하는 사이에 얼마나 기다릴 것인지 지정합니다.
    -1은 시스템적으로 시간이 없고 0은 가능하면 적게 지연됩니다.
  • Play : Play라고 입력하면 Play모드에 지연시간을 입력할 수 있습니다.
    여기서 입력하지 않으면 SendPlay는 언제나 지연시간이 -1(즉시 실행)입니다.  

 

③ 그외 마우스의 기본적인 기능

 

명령어의 영어단어가 직관적입니다. 설명은 필요없지만 저는 오타가 많아서 복사 붙여넣기로 사용합니다.

 

{WheelDown} - 휠내리기, {WheelUp} - 휠올리기, {WheelLeft} 휠왼쪽, {WheelRight} - 휠오른쪽, {LButton} - 왼쪽클릭, {RButton} - 오른쪽클릭, {MButton} - 휠버튼, {XButton1} - 옵션버튼1, {XButton2} - 옵션버튼2

 

Send, {Click 700, 400, 0} ; 커서를 좌표계 (700, 400)으로 옮깁니다.
Send, {WheelDown down} ; 마우스 휠을 내리는 상태로 고정합니다.
Sleep, 500 ; 500 ㎳ 기다립니다.
Send, {WheelDown up} ; 마우스 휠을 내리는 상태를 멈춥니다.

 

 

2. MouseMove - 마우스 움직이기

 

MouseMove X, Y [, Speed, Relative] : 마우스를 움직입니다.

 

  • X, Y : 마우스를 이동하고 싶은 위치
  • Speed : 마우스의 이동속도, 입력하지 않아도 기본 속도로 움직입니다. 기본 속도도 변경할 수 있습니다.
  • Relative : 생략하면 기본적인 창좌표계를 사용합니다. "R"을 입력하면 상대위치로 변경됩니다.
    지금 위치에서 상하좌우로 X, Y만큼 움직입니다.

 

 

 

3. MouseClick - 마우스 클릭하기

 

MouseClick [WhichButton, X, Y, ClickCount, Speed, DownOrUp, Relative] : 마우스를 이동한 후에 클릭합니다.

 

  • WhichButton : 클릭을 할 버튼입니다. 기본적으로는 Left(왼쪽클릭)입니다.
    Right(오른쪽 클릭), Middle(중간클릭), 그외 추가 옵션 버튼이 있으면, X1, X2라고 입력하면 됩니다.
    WheelUp / WU은 휠을 위로 돌리는 기능을, WheelDown / WD 는 휠을 아래로 합니다.
    WheelLeft (WL) / WheelRight (WR) 휠을 왼쪽, 오른쪽으로 돌립니다.(구형 휠을 가진 마우스가 있기는 하죠)
  • X, Y : 클릭하기 전에 이동할 좌표입니다. CoordMode로 좌표계의 모드를 변경할 수 있고, 기본값은 창좌표계입니다.
  • ClickCount : 마우스를 클릭할 횟수인데 휠을 선택한 경우 휠도 여러번 돌립니다.
  • Speed : 마우스가 움직이는 속도를 결정합니다. 속도의 범위는 0 (순간이동)부터 100 (가장 느림)까지입니다.
    생략하면 기본속도가 적용됩니다.
  • Down / Up : Down(D)은 별도 명령이 있을때까지 누르는 것이고 UP(U)는 마우스를 떼는 명령입니다.
  • Relative : 생략하면 기본적인 창좌표계를 사용합니다. "R"을 입력하면 상대위치로 변경됩니다.
    지금 위치에서 상하좌우로 X, Y만큼 움직입니다.

 

 

4. MouseClickDrag - 드레그 앤 드롭

 

MouseClickDrag WhichButton, X1, Y1, X2, Y2 [, Speed, Relative] : 마우스의 드레그 앤 드롭을 실행합니다.

일단 목표 위치(X1, Y1)로 이동해서 클릭해서 누른채로 다시 (X2, Y2)로 이동한 후에 놓습니다.

 

  • WhichButton : 클릭을 할 버튼입니다. 이 명령에서는 꼭 입력해야 합니다.
    Left(왼쪽), Right(오른쪽 클릭), Middle(중간클릭), 그외 추가 옵션 버튼이 있으면, X1, X2라고 입력하면 됩니다.
  • X1, Y1 : 시작할 위치의 마우스의 좌표입니다. 먼저 이곳으로 이동한 후에 시작합니다.(기본은 창좌표계입니다.)
  • X2, Y2 : 마우스를 클릭한 후에 이동하는 좌표입니다.(기본은 창좌표계입니다.)
  • Speed : 마우스가 움직이는 속도를 결정합니다. 속도의 범위는 0 (순간이동)부터 100 (가장 느림)까지입니다.
    생략하면 기본속도가 적용됩니다.
  • Relative : 생략하면 기본적인 창좌표계를 사용합니다.
    "R"을 입력하면 상대위치로 변경됩니다. 먼저 지금 마우스 커서에서 X1, Y1 만큼 이동합니다.
    그런 후 지정한 마우스 버튼을 클릭한 상태에서 X1, Y1를 기준으로 X2, Y2 만큼 다시 이동합니다.

 

 

5. MouseGetPos - 마우스의 정보를 입력

 

MouseGetPos &OutputVarX, &OutputVarY, &OutputVarWin, &OutputVarControl, Flag : 마우스의 위치의 정보를 얻습니다. 위치정보에는 마우스의 좌표와 마우스 아래에 있는 프로그램의 이름등이 있습니다.

 

  • &OutputVarX, &OutputVarY : 여기 적힌 변수명을 이름으로 X, Y의 좌표를 입력합니다. Coordmode로 좌표계를 변경할 수 있지만 기본 값은 창좌표계입니다.
  • &OutputVarWin : 마우스 아래에 있는 프로그램의 고유 ID를 변수에 입력합니다.
    창이 감지되지 않으면 값을 빈값으로 취급합니다. 활성화 되지 않아도 마우스 커서 아래에 있는 창을 감지합니다.
  • &OutputVarControl :  마우스 아래에 있는 프로그램의 이름(Class NN)을 변수에 입력합니다.
    창이 감지되지 않으면 빈값으로 취급합니다. 활성화 되지 않아도 마우스 커서 아래에 있는 창을 감지합니다.
  • Flag : 고유 ID나 Class NN을 얻는 방법입니다. 생략하면 0(기본값)입니다.
    1 : Class NN - OutputVarControl 알아내는데 다중 문서 인터페이스를 활성화 합니다.
    (컨트롤 안에 컨트롤은 어렵습니다.)
    2 : 콘트롤의 ClassNN이 아니라 콘트롤의 HWND를 OutputVarControl에 저장합니다.
    3 : 옵션 1과 2를 모두 사용합니다.

 

반응형
728x90
목차

1. AUTOHOTKEY의 좌표계

2. CoordMode - 좌표계 지정 명령어

 

평소에는 컴퓨터 상의 좌표를 신경 쓸까 싶습니다.

하지만 메크로 작성을 위해서 마우스나 창의 좌료를 알아야 합니다.

오토핫키의 각종 기능에 관여하는 좌표계에 대해서 알아보겠습니다.

※ WINDOW SPY로 좌표를 보는 방법은 아래 링크를 참고해 주세요

링크 : Auto Hot Key 2.0의 파트너 Window Spy로 마우스 위치, 색상, 프로그램 이름 알아내기

 

320x100

 

 

1. AUTOHOTKEY의 좌표계

 

① 절대좌표계 혹은 스크린 좌표계(Screen Coordinate) - 모니터 전체의 좌표계입니다.

왼쪽 맨위를 (0, 0)으로 합니다.

오른쪽으로 가면 X가 +로 아래로 가면 Y가 +로 숫자가 증가합니다.

따라서 오른쪽 아래가 가장 숫자가 큽니다.(해상도 전체)

 

② 상대좌표계 - 활성화 되어있는 창의 좌표계입니다.

오토핫키에서 상대좌표계(Relative Coordinate)와 창좌표계(Window Coordinate)는 같은 기능을 합니다.

상대적이다는 Relative 는 다른 명령어랑 혼돈이 올 수 있으니 Window 명령어를 권장합니다.

창의 왼쪽 상단을 기준으로 합니다.

창이 움직이면 움직이고, 창 외부로 나가면 음수가 될 수 있습니다.

 

 

③ 클라이언트 좌표계(Client Coordinate) - 클라이언트 영역의 좌표계입니다.

오토핫키에서 클라이언트 영역은 창(WINDOW) 내부의 제목 바와 매뉴창과 테두리를 뺀영역입니다.

실제 사용하는 영역이라고 봐도 됩니다.

 

 

 

2. CoordMode - 좌표계 지정 명령어

 

좌표계를 사용하는 모드를 변경하고, 적용되는 영역을 변경합니다.

 

CoordMode, TargetType [, RelativeTo] : 기능이나 명령어에 좌표계를 지정합니다.

 

TargetType : 좌표계가 어느 기능이나 명령어에 영향을 줄지 결정합니다. 아래값 중 하나를 입력합니다.

 

  • ToolTip: 최상 위에 있는 창을 만드는 명령어 ToolTip(가장 위의 창)에 작용합니다.
  • Pixel: 이미지나 픽셀을 찾고 위치나 색을 지정하는 명령어에 작용합니다. - PixelGetColor, PixelSearch, ImageSearch
  • Mouse: 마우스를 를 움직이거나 클릭하는 명령어에 작용합니다. - MouseGetPos, Click, MouseMove/Click/Drag
  • Caret: 내장 변수인 A_CaretX / A_CaretY에 작용합니다.
  • Menu : 메뉴기능을 마우스 위치에 출력하는 Menu Show에 작용합니다. 

 

RelativeTo : 어떤 좌표계를 사용할지 결정합니다. 기본값은  절대좌표, 스크린좌표계입니다.

각 좌표계에 대한 설명은 위에 한 것과 같습니다.

 

  • Screen : 절대 좌표계 = 스크린 좌표계(Screen Coordinate)입니다. 기본값입니다.
  • Relative : 상대좌표계(Relative Coordinate)입니다. Window와 같습니다.
  • Window : 창좌표계(Window Coordinate)입니다. Relative와 같습니다.
  • Client : 클라이언트 좌표계(Client Coordinate)입니다.

 

CoordMode, ToolTip, Screen ; 툴팁을 절대 화면 좌표에 배치
CoordMode, ToolTip, Window ; 툴팁을 상대 좌표에 배치

 

 

좌표계는 익숙해지면 편해집니다. Window spy라는 보조툴도 제공하니까 금방 적응 될 것입니다.

반응형
728x90
목차

1. Send, {AppsKey} - 메뉴키

2. 브라우져 컨트롤하는 변수들

3. 운영체제의 마스터볼륨 컨트롤

4. 재생 컨트롤 버튼

 

 

Send의 방대한 기능 중 팁이라고 생각되는 기능들을 정리했습니다.

이번 기회에 못다룬 기능 중에 재미있는 건 다른 기회에 다시 다루어 보겠습니다.

 

1. Send, {AppsKey} - 메뉴키

 

키보드의 menu 버튼에 해당합니다.

보통은 여기에 해당하는 기능 자체가 없고 마우스 오른쪽키와 브라우져의 메뉴를 섞어 논 느낌입니다.

 

← 굳이 따지면 이녀석에 가장 가깝습니다.

 

파일탐색기를 열고 아무파일을 선택하지 실행시키면 이렇게 마우스 오른쪽 버튼을 누른것과 같습니다.

하지만 파일을 선택하거나 주소를 선택하는 등 어딜 선택하느냐에 또 프로그램에서 메뉴버튼을 지원하는 경우에는 그걸 우선적으로 실행합니다.

 

 

320x100

 

 

2. 브라우져 컨트롤하는 변수들

 

인터넷창의 "뒤로가기", "앞으로가기", "새로 고침"등을 컨트롤합니다.

우선 인터넷 익스플로어, 마이크로 소프트 엣지 같은 윈도우 기본 지원 브라우저 뿐 아니라 크롬, 오페라 같은 외부 브라우져도 작동하는 것을 확인했습니다.

많이 사용하지 않아도 취향에 따라 바로가기 키로 등록할 만한 기능들이라고 생각합니다.

 

  • {Browser_Back} : 브라우저의 "뒤로가기" 버튼
  • {Browser_Forward} : 브라우저의 "앞으로 가기" 버튼
  • {Browser_Refresh} : 브라우저의 "새로고침" 버튼
  • {Browser_Stop} : 브라우저의 "정지" 버튼
  • {Browser_Home} : 브라우저의 홈페이지 버튼

 

Send키와 조합해서 써야 합니다.

Send, {Browser_Home}

 

 

3. 운영체제의 마스터볼륨 컨트롤

 

어차피 AUTO HOT KEY의 운영체제는 Window입니다.

마스터 볼륨을 조정할 수 있는 명령어입니다.

 

  • {Volume_Mute} : 마스터 볼륨 음소거. 음소거 상태에서 한번더 실행하면 음소거 해제.
    보통 SoundSet, +1, , mute와 동등함.
  • {Volume_Down} : 마스터 볼륨을 줄입니다. 연속으로 실행하면 계속 줄입니다. 보통 SoundSet -5와 동등.
  • {Volume_Up} : 마스터 볼륨을 높입니다. 연속으로 실행하면 계속 늘립니다. 보통 SoundSet +5와 동등함.

 

Window 10 같은경우에는 이런 마스터 볼륨 창이 화면에 뜨게 됩니다.

 

 

 

4. 재생 컨트롤 버튼

 

이번에는 동영상 플레이어용 명령어입니다.

요즘에는 음악플레이어 사용하시는 분이 많나 모르겠네요.

윈도우 미디어 플레이어를 포함 각종 동영상 재생 프로그램에 사용할 수 있고,

유튜브를 재생중인 브라우져를 선택하고 실행하면 동작합니다.

 

  • {Media_Next} : 미디어 플레이어에서 다음 목록 재생
  • {Media_Prev} : 미디어 플레이어에서 이전 목록 재생
  • {Media_Stop} : 미디어 플레이어 중지버튼
  • {Media_Play_Pause} : 미디어 플레이어 일시정지/다시 재생

 

브라우져나 동영상 플레이어가 필요한 기능들은 활성화가 안된경우 그냥 실행되지 않습니다.

하지만 프로그램 상태에 따라 예상하지 못한 동작을 할 수 있습니다.

이럴때를 대비해서 논리식등 안전키를 넣어두는게 좋습니다.

그런 기능에 대해서도 기회가 되면 포스팅 하도록 하겠습니다.

 


이외에도 다양한 기능이 있습니다.

필요하다 싶으면 포럼이나 다양한 커뮤니티를 이용해서 검색해서 찾는 버릇을 키웁시다.

직접 잘 짜시는 실력파도 있지만 저같은 저랩은 검색으로 배우는게 실력이 늘더라고요.

 

 

 

반응형
728x90
목차

1. SendRaw : 로우모드

2. SendInput : 빠르게 입력하기

3. SendPlay : 방해금지 입력

4. SendMode : 모드 변경하기

5. SetKeyDelay : 키의 딜레이를 제어

 

 

오토핫키의 Send 명령어는 기본 기능만으로 방대해서 한번에 익히기가 어려울 수 있습니다.

특히나 정말로 Send 만 잘 활용하면 키보드로 하는 모든 상황을 대응할 수 있습니다.

그러나 잘 알면 더욱 도움되는 파생함수들이 있으니까 짚어가도록 하겠습니다.

 

1. SendRaw : 로우모드

 

Send에서는 {enter}는 키보드의 엔터키에 대응됩니다.

하지만 코드를 짜다보면 enter라는 문장이 필요할 수 있습니다.

특수키/조합키가 먹히지 않는 텍스트만 사용하는 것이 로우모드입니다.

Autohotkey 2.0 버전에서는 로우모드일 때는 "{중괄호}"는 필요하지 않습니다.

 

Send, {Raw}enter
SendRaw, ^c 문장을 입력합니다. 
→ 결과 : enter^c 문장을 입력합니다.

 

320x100

 

2. SendInput : 빠르게 입력하기

 

사용법은 Send랑 같습니다. SendInput 명령어는 문장을 빠르게 입력합니다.

문장이 켜지는 동안 다른 프로그램이 실행되거나 해서 오류가 나는 경우를 방지합니다.

운영체제따라 다르지만 대략 5000문자로 제한된다고 합니다.

아래에 보면 Send는 빠르기는 해도 한문자씩 들어가지만 SendInput은 한방에 들어가죠.

 

보이시나요?

 

3. SendPlay : 방해금지 입력

 

사용법은 Send랑 같습니다.

속도는 Send < SendPlay < Sendinput인데 SendPlay는 중간에 끼어드는 키보드 입력을 뒤로 미룹니다.

도움말에서는 가장 발전할 버전이라고 하지만 CapsLock, NumLock, ScrollLock를 켜고 끌수는 없다고 합니다.

그리고 보안프로그램에 따라서 실행되지 않는 경우가 있다고 합니다. - 이건 정확한 제보가 아닐 수 있습니다.

(그저 보안프로그램이 정말 맘에 안듭니다.)

기본적으로는 Send를 쓰는게 가장 좋습니다.

 

 

4. SendMode : 모드 변경하기 

 

SendMode, mode : Send의 사용법을 결정합니다.

 

Event(send의 구버전, 거의 유사합니다.), input, Play를 선택할 수 있습니다.

한번 선택하면 그 아래 사용되는 Send가 mode를 따라 바뀝니다.

 

F2::
sendmode, Input ; 이 아래의 Send는 SendInput과 같습니다.
send, 가나다라마바사
sleep, 500
send, 아자차카파타하
sleep, 500
send, abcdefghijklmnopqrustwzyz

msgbox, 끝났습니다.
return

 

5. SetKeyDelay : 키의 딜레이를 제어

 

위에서 빠르게 입력하는 것을 보았지만 프로그램등 사용환경에 따라서는 키 사용에 딜레이가 있어야 합니다.

그걸 지원하는 것이 SetKeyDelay입니다.

SendInput은 한순간에 입력을 하는 모드라서 이 딜레이를 무시합니다.

 

SetKeyDelay , [Delay, PressDuration, Play] : 키의 딜레이를 입력합니다.

 

  • Delay : 키와 키간의 지연시간입니다. -1을 입력하면 전혀 없고, 양수는 ㎳ 단위로 받아들입니다.
  • PressDuration : 키가 눌려져서 때질때까지의 지연시간입니다. -1을 입력하면 전혀 없습니다.
    눌렸다 때는 시간이기 때문에 그냥 타이핑을 봐서는 알 방법이 없습니다.
    사용 환경 소프트웨어(게임등)의 요구조건에 따라 입력해 줍니다.
  • Play : Play라고 입력하면 Play 모드에 지연시간을 입력할 수 있습니다. 여기서 입력하지 않으면 SendPlay는 언제나 지연시간이 -1(즉시 실행)입니다.  

 

 

 

반응형
728x90
목차

1. SEND 명령어

2. 조합키

3. Down과 UP

4. 자주 사용하는 특수키들

5. 그외 특수키들

 

우리가 컴퓨터를 사용해서 하는 일은 대표적으로 입력과 출력 2개가 있습니다.

입력은 거의 모든 경우에 마우스와 키보드로 이루어집니다.

그 중 하나인 키보드 입력에 대해서 알아보겠습니다.

 

1. SEND 명령어

 

SEND, {keys} : 키를 입력합니다.

예) Send, {a} - a를 입력합니다. / Send, {a 20} - a를 20번 입력합니다.

엄청 단순한 사용법이지만 우리가 키보드를 사용하는 방식 다양함으로 여러가지 기능을 지원합니다.

 

※ 기타 : Send 키는 실제로 키보드를 누른것과 같은 동작을 함으로 노딜레이로 실행하면 버그가 나기 쉽습니다.

Sleep 숫자(㎳ 단위의 대기시간을 가집니다.)를 이용해서 딜레이를 주는 요령을 들입시다.

 

 

 

2. 조합키

 

`과 함께 사용해서 키보드의 기능으로 인식되는 조합이 있습니다.

 

  • `n, `r : enter키로 인식합니다.
  • `t : Tap으로 인식합니다.
  • `b : 백스페이스로 인식합니다.

 

아시겠지만 AUTO HOT KEY에서 종종 쓰는 ` 키는 보통 키보드에서 1 왼쪽 ESC 아래에 있는 키입니다.

저는 가끔 다른 키랑 혼돈합니다. 점이라 잘 보이지 않으니 코딩할 때 주의하세요.

 

 

 

3. Down과 UP

 

명령어라기보단느 키 뒤에 위치하여 상태를 제어합니다.

가장 간단한 누르고 있거나 때는 동작을 보여줍니다.

 

DOWN : 키보드를 누르고 있는다.

UP : 눌렀던 키보드를 땐다.

 

아래의 예시는 a를 1000 ㎳ 동안 누르고 있다가 때는 것입니다.

그런데 키를 누르고 있어도 연속으로 aaaaaa... 으로 입력되지 않습니다.

그건 물리적인 우리가 사용하는 키보드의 기능이기 때문입니다.

그리고 한영키에 따라서 한글로 들어갈 수도 있습니다.

 

Send {a down}
Sleep, 1000
Send, {a up}

 

Down을 눌렀다가 UP으로 해지하지 않으면 큰 오류가 날수도 있습니다.

꼭 DOWN을 썻으면 UP으로 정리하는 버릇을 들여야겠습니다.

 

320x100

 

 

4. 자주 사용하는 특수키들

 

가장 자주 쓰는 특수키를 모았습니다.

일반키들은 키보드가 입력되지만 특수키들은 그냥 특수키로 실행됩니다.

예를 들어 Send, {abc} → abc를 입력하지만, Send, {enter} → 키보드의 enter키를 누른 것과 같습니다.

 

    • {F1~F24} : 키보드의 F1~F24, 우리 키보드에는 보통 F12까지 있죠.
    • {Enter} : 키보드의 Enter
    • {Escape} or {Esc}  : 키보드의 ESC
    • {Space} : 키보드의 스페이스, 빈칸이 있어도 스페이스가 됨
    • {Tab} : 키보드의 Tap
    • {Backspace} or {BS} : 키보드의 백스페이스
    • {Delete} or {Del} : 키보드의 Delete 키
    • {Control} or {Ctrl} : 키보드의 Ctrl 키
    • {LControl} or {LCtrl} / {RControl} or {RCtrl} : 왼쪽 Ctrl 키와 오른쪽 Ctrl 키
    • {Alt} : 키보드의 Alt 키
    • {LAlt} / {RAlt} : 왼쪽 Alt 키와 오른쪽 Alt 키
    • {LWin} / {RWin} : 키보드의 왼쪽 오른쪽 WINDOW키
    • {UP} {DOWN} {LEFT} {RIGHT} : 키보드의 방향키 ↑ ↓ ← → 키

 

예시를 들어보겠습니다.

5개의 글자를 선택해서 복사하고 아래에 붙여 넣는 기능입니다.

이런 간단한 작업도 메크로로 짜려면 약간 주눅이 듭니다.(중간에 시간을 1초씩 넣다보니 느리네요)

하지만 한번 짜두면 계속 쓸 수 있는게 메크로의 장점이니 반복된 작업에 사용할 수 있습니다.

 

F2:: Send, {shift down}
Sleep, 1000
Send, {right 5}
Sleep, 1000
Send, {shift up}
Sleep, 1000
Send, {ctrl down}
Sleep, 1000
Send, {c}
Sleep, 1000
Send, {right}
sleep, 1000
Send, {enter 2}
Sleep, 1000
Send, {v}
Send, {ctrl up}
msgbox, 끝났습니다.
return

뭐든 메크로가 작동되면 기분은 좋습니다.

 

5. 그외 특수키들

 

위에 자주쓰는걸 보셨으면 예상이 되겠지만 키보드에 있는 명칭을 거의 그대로 사용합니다.

어려울 것 전혀 없고 많기만 하지만 쭈욱 적어 내려가 볼테니 사용하실 꺼면 참고하세요.

 

  • {Insert} or {Ins} : 키보드의 Insert 키
  • {End} : 키보드의 End 키
  • {PgUp} / {PgDn} : 키보드의 Page up과 Page down 키
  • {CapsLock} : 키보드의 Caps Lock
  • {ScrollLock} : 키보드의 ScrollLock
  • {NumLock} : 키보드의 NumLock
  • {Numpad0} - {Numpad9} : 숫자패드의 숫자들
  • {NumpadDot} : 숫자패드의  .(점)
  • {NumpadEnter} : 숫자패드의 Enter
  • {NumpadMult} : 숫자패드의 * (곱하기)
  • {NumpadDiv} : 숫자패드의 / (나누기)
  • {NumpadAdd} : 숫자패드의 + (더하기)
  • {NumpadSub} : 숫자패드의 - (빼기)
  • {NumpadDel} : 숫자패드의 Del
  • {NumpadIns} : 숫자패드의 ins
  • {NumpadClear} : 숫자패드의 Clear키
  • {NumpadUp} {NumpadDown} {NumpadLeft} {NumpadRight} : 숫자 패드의  ↑ ↓ ← → 키
  • {NumpadHome} : 숫자패드의 Home 키
  • {NumpadEnd} : 숫자패드의 End
  • {NumpadPgUp} {NumpadPgDn} : 숫자패드의 Page up과 Page Down

 

숫자패드 키는 키보드마다 구성이 약간씩 다르지만 이경우 모두 들어갑니다.

프로그램이나 상황에 따라 본 키보드와 숫자패드가 구별되는 상황에서 쓰시면 됩니다.

 

 

반응형

+ Recent posts