HiroMacro Help Document

한국어   /   English

v2.1

1. 일반

2. 사용법

3. 설정방법 (v1.4+)

4. 스크립트

5. 부록


1. 일반

히로매크로는 안드로이드 기기에서 사용가능한 자동터치 매크로 입니다.
사용자의 터치작업을 기록하여 스크립트로 만들수 있으며 이를 반복하여 재생할수 있습니다.
간단한 스크립트 언어를 사용하여 손쉽게 강력한 기능을 구현해 낼수 있습니다.
히로매크로를 사용하기 위해서는 안드로이드 기기를 루팅해야 하며 히로매크로에 루트권한을 부여해 주어야 합니다.


2. 사용법

2.1. 어떻게 터치를 기록하나요?

      1. 히로매크로를 실행하고 서비스 시작해 줍니다.
      2. 기록할 어플리케이션이나 화면으로 이동한후 동작버튼을 눌러줍니다.
      3. 팝업메뉴가 뜨면 기록버튼을 눌러 줍니다.
      4. 화면을 터치하여 반복할 터치작업을 합니다.
      5. 기록을 마치고 싶으면 다시 한번 동작버튼을 눌러줍니다. 자동으로  “Record_현재시간.txt” 저장이 됩니다.

2.2. 기록한 작업을 어떻게 재생하나요?

      1. 히로매크로를 실행하고 서비스를 시작해 줍니다.
      2. 재생할 어플리케이션이나 화면으로 이동한후 동작버튼을 눌러줍니다.
      3. 리스트에서 재생할 스크립트를 선택합니다.
      4. 반복횟수 및 지연시간을 설정 할수 있습니다. 반복횟수를 “0”으로 설정하게 되면 작업은 무한으로 재생됩니다. 지연시간은 재생이 완료된후 다음 재생까지 걸리는 시간입니다. 초단위로 입력하며 “5”라고 입력한경우 한번 재생된후 5초지연후 다시 재생이 됩니다. 재생속도는 기록한 속도를 기준이 1.0이며 0.1x ~ 0.2x 까지 조절 가능합니다.
      5. 반복횟수와 지연시간 재생속도를 설정한후 재생버튼을 눌러줍니다. 잠시후 재생이 시작됩니다.
      6. 재생이 완료되기전에 강제로 중지하고 싶다면 동작버튼을 눌러주세요 매크로가 중지됩니다.

2.3. 스크립트를 어떻게 편집하나요?

      1. 새 스크립트를 작성하실 경우 스크립트메뉴에서 새스크립트를 눌러줍니다.
      2. 기존 스크립트를 수정하실 경우에는 스크립트 리스트 메뉴에서 해당 스크립트를 길게 터치하면 팝업메뉴가 뜹니다. 메뉴에서 편집을 눌러줍니다.
      3. 스크립트를 수정하거나 새로 작성하여 줍니다.
      4. 메뉴에서 저장을 눌러줍니다.

3. 설정방법

3.1. 매크로 동작버튼

히로매크로의 매뉴를 불러오고나 기록정지, 재생정지 사용되는 버튼입니다.
볼륨업 버튼, 볼륨다운 버튼, 메뉴 버튼은 하드웨어 버튼만 인식되며 소프트웨어 버튼은 인식하지 않습니다.
사용하는 기기에 해당 버튼이 없는경우 화면에 버튼추가 혹은 디바이스 흔들기로 설정하세요.

      • 볼륨업 버튼: 기기에 소리를 키우는 버튼 입니다.
      • 볼륨다운 버튼: 기기에 소리를 줄이는 버튼 입니다.
      • 메뉴 버튼: 기기에서 메뉴를 부르는 버튼입니다.
      • 화면에 버튼 추가: 화면에 가상의 버튼을 추가하여 사용합니다.
      • 디바이스 흔들기: 기기를 흔들게 되면 동작합니다.

3.1. 색값 접근 방식

스크립트에서 색값등을 사용할때 이를 접근하는 방식을 설정합니다.
superuser나 supersu를 사용하는 경우 스크린캡쳐 방식이나 히로캡쳐 방식을 사용할경우 색값에 접근할때마다 토스트 메세지가 뜨게됩니다.
superuser나 supersu에서 히로매크로의 토스트 알림을 꺼주시면 됩니다.

      • 자동설정: 사용자의 환경에 따라 자동으로 설정 됩니다.
      • 프레임버퍼: 접근방식중 가장 빠르고 정확한값을 가져옵니다. 안드로이드 v4.1까지 사용가능하며 이후버전은 cm 등과 같은 커스텀 펌웨어에서만 사용가능합니다.
      • 스크린캡쳐: 안드로이드 기기에서 사용하는 기본적인 방법으로 화면을 캡쳐한후 색값에 접근 합니다. 일부 고해상도 기기에서는 멈춤현상이 있을수 있습니다.
      • 히로캡쳐: 스크린캡쳐 방식의 멈춤현상을 개선한 방식으로 캡쳐 사이즈를 줄여 속도를 빠르게 한 방식입니다. 사이즈가 작을수록 이미지 손실때문에 색값이 정확하지 않을수 있습니다. 안드로이드 v4.3이상에서 사용가능합니다.

3.2 스크린캡쳐 딜레이

스크립캡쳐방식이나 히로캡쳐를 사용할때 최소한의 딜레이 설정합니다.
스크립트는 매우빠른 속도로 진행이 되는데 getcolor 명령어를 사용할때마다 화면을 캡쳐하게되면 스크립트 진행속도에 문제가 생길수 있어 최소한의 딜레이를 지정합니다.
초단위로 지정을 하게 되며 가령 2초로 설정할 경우 초기 getcolor 명령어시 화면을 캡쳐 한후 이후에 getcolor 명령어가 나오더라도 2초동안은 새로 캡쳐하지 않습니다.
프레임버퍼 방식의 경우 따로 스크린 캡쳐없이 실시간으로 접근하기때문에 해당 설정의 영향을 받지 않습니다.


3.4. 키보드 접근 방식

스크립트에서 키입력 및 하드웨어 키를 입력할때 사용하는 방식을 설정합니다.

      • 가상 키보드: 기기에 블루투스키보드와 같은 가상의 키보드를 생성후 키를 입력합니다. 안드로이드 설정에 기본키보드 영향을 받으며 종류에따라 하드웨어키가 동작하지 않을수 있습니다.
      • 명령어 키보드: 별도의 키보드 추가 없이 직접적으로 명령어를 입력합니다. 모든기기에 사용가능하며 가상키보드에 비해 속도가 느립니다.

3.5. 화면 꺼짐 방지

안드로이드 기기는 사용자가 사용하지 않을때 자동으로 화면을 잠그는 기능을 기본적으로 제공합니다.
매크로 딜레이가 길거나 할때 화면이 잠길수 있습니다. 이 기능을 활성화 하면 서비스가 실행중인 동안에는 자동으로 화면을 잠그지 않습니다.


3.6. 터치 좌표 디버그

이 기능을 활성화하면 사용자의 터치 위치를 시각적으로 보여주며 해당 좌표를 화면에 출력해 줍니다.
히로매크로는 화면 방향에 영향없이 고정된 좌표를 사용하기 때문에 화면을 가로로 돌린상태와 세로인 상태에서 같은 좌표가 나오는것은 정상입니다.
이 고정된 좌표는 스크립트 색값에도 동일하게 사용됩니다.


3.7. 색값 좌표 디버그

이 기능을 활성화하면 사용자가 터치한 곳의 색값과 좌표를 화면에 출력해 줍니다.
개발자 옵션에서 터치표시를 활성화 한경우 터치표시가 같이 캡쳐되어 색값이 정확하지 않을수 있습니다.
색값 접근 방식이 스크린캡쳐 방식이나 히로 캡쳐 방식의 경우 터치다운시 전체화면을 캡쳐하기 때문에 터치다운시 멈춤현상이 있을수 있습니다.


4. 스크립트

4.1. 기본

스크립트는 기본적으로 한줄에 한가지 동작을 하게끔 되어있습니다.  기능의 파라메터는 띄어쓰기로 구분하기 때문에 띄어쓰기와 줄바꿈에 유의하여 작성해야 합니다.


4.2. 기능

스크립트는 여러상황에 대처하여 매크로를 작동시키위해 여러 기능들을 제공합니다. 가령 예로 화면의 색을 가져와서 현재 상태를 예상하여 그에 따른 행동을 할수 있으며 특정상황에는 a라는 행동을하고 다른상황에서는 b라는 행동을 하게 하는것이 가능합니다. 각 기능의 사용법은 아래 내용을 참조하십시오.


4.2.1. touchDown finger x y

화면 상의 x , y 좌표에 터치다운 이벤트를 발생합니다.

      • Params
        • finger: 기본적으로 0 으로 사용하며 멀티 터치를 구현할 경우 1,2,3,4,5 식으로 입력합니다.
        • x: 이벤트를 발생시킬 x 좌표 입니다.
        • y: 이벤트를 발생시킬 y 좌표 입니다.
// 첫번째 손가락 터치다운 이벤트
touchDown 0 100 200 
// 두번째 손가락 터치다운 이벤트
touchDown 1 300 300

4.2.2. touchMove finger x y

터치다운 이벤트 후에 발생해야 하는 이벤트 이며 터치를 누른상태로 이동하는 이벤트를 발생합니다.

      • Params
        • finger: 기본적으로 0 으로 사용하며 멀티 터치를 구현할 경우 1,2,3,4,5 식으로 입력합니다.
        • x: 이벤트를 발생시킬 x 좌표 입니다.
        • y: 이벤트를 발생시킬 y 좌표 입니다.
// 좌표 100,200에 터치다운 이벤트
touchDown 0 100 200 
// 1초간 기다림(1000 = 1초)
sleep 1000
// 터치상태를 좌표 200,200으로 이동 이벤트
touchMove 0 200 200

4.2.3. touchUp finger

터치 다운 이벤트 후에 발생해야 하는 이벤트 이며 터치를 그만둡니다.

      • Params
        • finger: 기본적으로 0 으로 사용하며 멀티 터치를 구현할 경우 1,2,3,4,5 식으로 입력합니다.
// 좌표 100,200에 터치다운 이벤트
touchDown 0 100 200 
// 1초간 기다림(1000 = 1초)
sleep 1000
// 터치상태를 좌표 200,200으로 이동 이벤트
touchMove 0 200 200
// 화면에서 터치를 그만둠
touchUp 0

4.2.4. touchPress finger x y

touchDown 기능과 touchUp 기능을 합친 기능입니다.. 한줄로 간편하게 터치구현이 가능합니다.

      • Params
        • finger: 기본적으로 0 으로 사용하며 멀티 터치를 구현할 경우 1,2,3,4,5 식으로 입력합니다.
        • x: 이벤트를 발생시킬 x 좌표 입니다.
        • y: 이벤트를 발생시킬 y 좌표 입니다.
// 좌표 100,200에 터치다운 이벤트
touchDown 0 100 200 
// 0.1초간 기다림(1000 = 1초)
sleep 100
// 화면에서 터치를 그만둠
touchup 0

// 위와 동일한 이벤트를 발생
touchPress 0 100 200

4.2.5. keyDown code

키보드의 키 입력 및 조이스틱/패드버튼 안드로이드 하드웨어키를 누른상태의 이벤트를 발생시킵니다.
keyUp 코드가 뒤에 와야 하며 오랜시간동안 keyUp 이 안올경우 반복효과가 있습니다.
(예로 키보드 a 를 누르고있으면 aaaaaaaaaaaaaaaaa)
키보드 한영전환은 부록 5.2 키보드한영전환을 참조

// 키보드 a키를 누른상태 (소문자 a가 입력댐)
keyDown K_A
// 0.03초간 기다림(1000 = 1초)
sleep 30
//  키보드 a 키를 땐 상태
keyUp K_A
sleep 1000
// 키보드 왼쪽 shift키를 누른상태
keyDown K_SHFT_LEFT
sleep 30
// 키보드 a키를 누른상태(대문자 A가 입력댐)
keyDown K_A
sleep 30
// 키보드 a를 땐상태
keyUp K_A  
sleep 30
 // 키보드 왼쪽 shift키를 땐상태
keyUp k_SHIFT_LEFT 
sleep 1000

4.2.6. keyUp code

키 다운 이벤트 후에 발생해야 하는 이벤트이며 단독사용으로는 아무 효과가 없습니다.

4.2.5 keyDown 참조

4.2.7. keyPress code

keyDown 이벤트와 keyUp 이벤트를 합친 이벤트입니다. 한줄로 간편하게 키입력이 가능합니다.

// 하드웨어키 뒤로가기를 누른상태
keyDown K_BACK
// 0.05초간 기다림(1000 = 1초)
sleep 50
// 하드웨어키 뒤로가기를 땐 상태
keyUp K_BACK

//위와 동일한 이벤트를 발생
keyPress K_BACK

4.2.8. Sleep time

이벤트를 해당 시간 만큼 지연 시킵니다.

      • Params
        • time: 1/1000 초 단위로 설정가능하며 1000일 경우 1초 입니다.
// 1초간 기다림(1000 = 1초)
sleep 1000

4.2.9. Var name val

name이라는 변수에 val 값을 넣습니다. 설정할 변수의 경우 :start 라벨 위에 반드시 와야 하며 매크로가 처음 실행될때만 설정되며 이후 반복될경우에는 설정되지 않습니다.

      • Params
        • name: 반드시 #으로 시작되여야 합니다. ( #a #apple #abc)
        • val: 숫자 형식으로 입력해야 합니다. (0 1 2 3 4 5)
// 변수를 선언합니다 
Var #abc 0 

:start
// 1초간 기다림(1000 = 1초)
sleep 1000
:end

4.2.10. Set name val

name이라는 변수에 val 값을 넣습니다. Var 기능과 비슷하지만 set의 경우 매크로가 반복될경우 매번 설정됩니다. 변수 초기화등에 사용하시면 됩니다. 반드시 :start 와 :end 라벨 사이에 와야 합니다.

      • Params
        • name : 반드시 #으로 시작되어야 합니다. (#a #apple #abc)
        • val: 숫자 형식으로 입력해야 합니다 (0 1 2 3 4 5)
 // 변수를 선언합니다 
Var #abc 0 

// 매크로 시작 라벨입니다.
:start
// 변수에 1 값을 넣습니다.
Set #abc 1 
// 토스트 메세지를 보여줍니다.
toast 변수는 #abc  
// 3초간 기다립니다.(1000 = 1초)
sleep 3000
// 매크로 끝 라벨 입니다.
:end

4.2.11. Calc var val1 option val2

더하기, 빼기, 곱하기, 나누기, 나머지값을 계산하여 변수에 넣습니다.

      • Params
        • var : 계산값이 저장될 변수를 입력합니다. (#result)
        • val1: 변수(#abc) 혹은 숫자형으로 입력 가능합니다.
        • option: + 더하기 – 빼기 * 곱하기 / 나누기 % 나머지값을 지원합니다.
        • val2: 변수(#abc) 혹은 숫자형으로 입력 가능합니다.
//변수를 선언합니다.
Var #result 0
Var #abc 0  

//매크로 시작 라벨입니다.
:start  

// #abc 변수에 1값을 넣습니다.
Set #abc 1

// #result 변수에 #abc에 10을 더한값을 넣습니다.
calc #result #abc + 10 

// 토스트 메세지를 보여줍니다.
toast #result 

// 3초간 기다립니다.
sleep 3000 

// #result 변수에 #result에 5를 뺀값을 넣습니다.
Calc #result #result - 5  

// 토스트 메세지를 보여줍니다.
toast #result 
:end

4.2.12. Calc 간편계산식

Calc 기능 및 Set 기능을 좀더 간편하게 사용할수 있는 방식입니다.

//변수를 선언합니다.
Var #result 0
Var #abc 0  

:start
Set #abc 1
calc #result #abc + 10
toast #result
sleep 3000
Calc #result #result - 5 
toast #result

// 위와 동일한 이벤트를 발생합니다.
#abc = 1
#result = #abc + 10
toast #result
sleep 3000
#result = #result - 5
toast #result

// 여러 계산식을 혼합하여 사용 가능합니다.
#result = (#abc+10-1)*2+(#abc%10)*5
#result = #abc+#result-10 

:end

4.2.13. Rand var min max

변수에 랜덤수를 생성하여 넣습니다.

      • Params
        • var : 계산값이 저장될 변수를 입력합니다. (#result)
        • min: 생성할 변수의 최소값 10일 경우 10보다 큰수를 생성
        • max: 생성할 변수의 최대값 100일 경우 100보다 작은수 생성
var #count 0

:start
// 10이상 20이하 랜덤수를 생성하여 #count 변수에 넣음
rand #count 10 20 
// 토스트 메세지를 보여줍니다.
toast 랜덤수는 #count 
// 2초간 기다립니다.
sleep 2000  
// 시작으로 돌아갑니다 무한루프
goto :start
:end

4.2.14. If Endif

if 분기점을 사용가능합니다 if 를 사용할 경우 반드시 endif가 있어야 합니다. 조건은 =(같다) ==(같다) != (다르다) > (크다) >= (크거나같다.)  <(작다) <=(작거나같다) 6가지 경우로 사용가능하며  변수와 변수를 비교하는것도 가능합니다. 예로 if #count < #hunt 와 같이 사용할 수 있습니다. 두가지 이상의 조건을 비교할땐 or (혹은) and (그리고)를 사용합니다. 그리고 if 문이 끝날때에는 반드시 Endif 가 와야 합니다.

//변수를 선언합니다.
Var #count 0

:start
// #count 에 1를 더해 줍니다.
#count = #count + 1  

// #count 가 10일경우  
if #count == 10

     // 토스트 메세지를 보여줍니다.
     toast 현재 카운트가 10 입니다.
     
// if 조건문의 끝입니다.
endif  

// #count가 10보다 크고 20보다 작은경우
if #count > 10 and #count

4.2.15. ElseIF

ElseIF 문은 IF 문과 같이 비교구문으로 반드시 IF 와 ENDIF 사이에 와야 하며 위의 IF문 혹은 또다른 ElseF 문이 거짓일때 다시한번 조건을 비교할 수 있습니다. 위의 조건이 참일경우에는 비교하지 않습니다.

//변수를 선언합니다.
Var #count 0

:start
// #count 에 1를 더해 줍니다.
#count = #count + 1  

// #count 가 10일경우  
if #count == 10

     // 토스트 메세지를 보여줍니다.
     toast 현재 카운트가 10 입니다.

// #count 가 15일경우  
elseif #count == 15

     // 토스트 메세지를 보여줍니다.
     toast 현재 카운트가 15 입니다.
 
// #count 가 20이거나 그보다큰경우
elseif #count >= 20    
 
      // 토스트 메세지를 보여줍니다.
      toast 현재 카운트가 20이상 입니다.
     
// if 조건문의 끝입니다.
endif  


:end

4.2.16. Else

Else 문은 IF 구문 사용시 위의 모든 조건의 거짓일때 실행되는 구문입니다. else 문을 추가로 사용시 elseIF문 보다 아래 사용해야 합니다. 위의 조건이 참일경우에는 실행되지 않습니다.

//변수를 선언합니다.
Var #count 0
Var #na 0

:start
// #count 에 1를 더해 줍니다.
#count = #count + 1  

// #na에  #count에 2로나눈 나머지 값을 넣습니다.
#na = #count % 2

//  나머지 값이 0 일경우 
if #na == 0

     // 토스트 메세지를 보여줍니다.
     toast 현재 카운트가 짝수입니다.

// 나머지 값이 1일 경우
else

      // 토스트 메세지를 보여줍니다.
      toast 현재 카운트는 홀수입니다.
     
// if 조건문의 끝입니다.
endif  


:end
4.2.17. Goto label

스크립트를 해당 라벨로 이동하는 기능입니다. label은 반드시 :으로 시작해야 합니다 (:step :go)  라벨은 스크립트 중간에 아무곳이나 추가 가능하며  :start 라벨과 :end 라벨은 기본 라벨이므로 반드시 존재해야 합니다.

      • Params
        • label: 이동할 라벨을 입력해줍니다. 라벨은 반드시 :로 시작해야 합니다.
var #count 0;

:start
// #count 변수에 1를 더해줌
#count = #count + 1

// #count가 10보다 작을 경우 
if #count < 10  
     // :alabel 라벨로 이동
     goto :alabel 

 // 10이거나 10보다 클경우
else
     // :blabel 라벨로 이동
     goto :blabel

endif

:alabel
//:end 라벨로 이동
goto :end

:blabel
// #count 변수를 다시 0으로 초기화
#count = 0

//:end 라벨로 이동
goto :end

:end

4.2.18. getColor var x y

현재화면에서 x,y의 좌표값의  rgb칼라값을 var 변수에 저장합니다.
칼라값은 blue * 65526 + green * 256 + red 으로 계산되어 변수 var에 저장됩니다.
역으로 각각의 칼라값을 알고 싶다면 red = var % 256 , green = var / 256 % 256, blue = var / 256 / 256 % 256 으로 구할수 있습니다.

      • Params
        • var: rgb 칼라값을 저장할 변수입니다.
        • x: 칼라값을 가져올 x 좌표입니다.
        • y: 칼라값을 가져올 y 좌표입니다.
 
var #color 0
var #result 0

:start
// 100,200좌표의 색값을 #color변수에 넣습니다.
getColor #color 100 200

// 토스트 메세지를 보여줍니다.
toast 색값 #color 

// 3초간 기다립니다.
sleep 3000 

#result = #color % 256
toast Red색값 #Result
sleep 3000 

#result = #color / 256 % 256
toast Green색값 #Result
sleep 3000 

#result = #color / 256 / 256 % 256
toast Blue색값 #Result
sleep 3000 

:end

4.2.19. getColorGray var x y

현재화면에서 x,y의 좌표값의  흑백칼라값을 var 변수에 저장합니다.
흑백칼라값은 (blue + green + red) / 3 으로 계산되어 변수 var에 저장됩니다.

      • Params
        • var: 흑백칼라값을 저장할 변수입니다.
        • x: 흑백칼라값을 가져올 x 좌표입니다.
        • y: 흑백칼라값을 가져올 y 좌표입니다.
 
var #color 0

:start
// 100,200좌표의 흑백색값을 #color변수에 넣습니다.
getColorGray #color 100 200

// 토스트 메세지를 보여줍니다.
toast 흑백색값 #color 

// 3초간 기다립니다.
sleep 3000 

:end

4.2.20. getRGB var1 var2 var3 x y

현재화면에서 x,y의 좌표값의 RGB 색값을 각각의 var1~var3 변수에 저장합니다.

      • Params
        • var1: RED칼라값을 저장할 변수입니다.
        • var2: GREEN칼라값을 저장할 변수입니다.
        • var3: BLUE칼라값을 저장할 변수입니다.
        • x: RGB칼라값을 가져올 x 좌표입니다.
        • y: RGB칼라값을 가져올 y 좌표입니다.
 
var #red 0
var #green 0
var #blue 0

:start
// 100,200좌표의 RGB색값을 #red, #green, #blue 변수에 넣습니다.
getRGB #red #green #blue 100 200

// 토스트 메세지를 보여줍니다.
toast R: #red G: #green B: #blue

// 3초간 기다립니다.
sleep 3000 

:end

4.2.21. screenLock time

원하는 시간 동안 기기의 스크린을 잠금합니다. 키보드 이벤트의 파워키와 비슷한 기능이지만
매크로는 화면이 꺼진 시간동안 일시정지 상태이 때문에  키보드 이벤트 파워키를 입력한 경우
사용자가 다시 키기전까지 매크로가 진행되지 않지만 screenLock 이벤트의 경우 지정시간이후 저절로
화면이 켜지고 이후 매크로가 진행 됩니다. time값이 0 일경우 화면이 꺼지고 자동으로 켜지지 않습니다.

안드로이드 정책상 화면잠금 기능은 권한설정을 해주어야 하며 설정->보안->디바이스 관리자 에서
권한을 주어야 사용가능합니다.
디바이스 관리자의 권한을 준 어플은 삭제가 불가능 하므로 추후 히로매크로 삭제시에는 권한을 해제하고 삭제해야 합니다.

      • Params
        • time: 화면을 끄고 있을 시간 (1000 == 1초)
:start
// 토스트 메세지를 보여줍니다.
toast 잠시후 화면이 꺼집니다.
sleep 5000

// 화면이 꺼지고 10초후 켜집니다.
screenLock 10000 
sleep 1000

// 락스크린해제 터치 이벤트
touchDown 0 100 100 
sleep 50
touchMove 0 200 100
sleep 50
touchMove 0 300 100
sleep 50
touchUp 0

 // 토스트 메세지를 보여줍니다.
toast 화면이 켜졌습니다. 
:end

4.2.22. RunApp name

스크립트상에서 다른 어플을 실행할때 사용하는 기능입니다. 해당 패키지명의 이름의 어플리케이션이 없을경우 실행되지 않습니다.
패키지명을 정확히 입력해 주셔야합니다.

      • Params
        • name: 다른어플의 패키지명을 입력 (com.android.calendar, com.android.crome, com.prohiro.macro)
:start

// com.android.calendar 패키지명의 어플리케이션을 실행
RunApp com.android.calendar
sleep 5000

RunApp com.android.crome
sleep 5000

RunApp com.prohiro.macro
sleep 5000

:end

4.2.23. WaitApp name

다른 어플리케이션의 실행을 감지할때 사용하는 기능입니다. 지정해놓은 어플이 실행되기 전까지는 스크립트가 진행되지 않고 대기합니다.

      • Params
        • name: 다른어플의 패키지명을 입력 (com.android.calendar, com.android.crome, com.prohiro.macro)
:start

//  com.prohiro.macro 패키지명의 어플리케이션을 실행
RunApp com.prohiro.macro

// com.prohiro.macro 패키지명의 어플리케이션이 실행되기를 기다림
WaitApp com.prohiro.macro
sleep 1000
toast 어플이 실행되었습니다.

:end
4.2.24. CheckApp var name

다른 어플리케이션의 실행을 감지할때 사용하는 기능입니다. 해당 패키지명의 어플이 실행중이라면 var 값에 1이 저장되며 실행중이 아니라면 0이 저장됩니다

      • Params
        • var: 어플 실행감지 결과를 저장할 변수 입니다. (#a, #apple #abc)
        • name: 다른어플의 패키지명을 입력 (com.android.calendar, com.android.crome, com.prohiro.macro)
var #check 0
:start

CheckApp #check com.prohiro.macro
if #check == 0
     toast 히로매크로가 실행중이 아님.
elseif #check == 1
    toast 히로매크로가 실행중입니다.
endif     

:end

4.2.25. Vibrate time

해당 시간동안 안드로이드 기기에 진동을 발생시킵니다.

      • Params
        • time: 1/1000 초 단위로 설정가능하며 1000일 경우 1초 입니다.
var #color 0
:start
// 3초간 진동을 발생시킵니다.
Vibrate 3000
// sleep이 없을경우 매크로가 바로 종료되기 때문에 이벤트를 지연시켜줍니다.
sleep 3000

:end

4.2.26. Beep

안드로이드 기기에 알림 사운드를 재생합니다.

var #color 0
:start

// 알림 사운드를 재생합니다.
Beep

:end

4.2.27. ScreenCap

현재 화면을 스크린샷으로 저장합니다.
이미지파일은 PNG 파일로 ~/HiroMacro/Screenshot/ 폴더에 저장됩니다.

var #color 0
:start

// 현재화면을 스크린샷으로 저장합니다.
ScreenCap

:end

4.2.28. ForceStop

반복횟수 루프문에 상관없이 스크립트를 강제정지 합니다.

var #color 0
:start

// 토스트 메세지를 보여줍니다.
toast 토스트 메세지 입니다
sleep 3000

// 스크립트를 강제정지 합니다.
ForceStop

//아래 스크립트는 실행되지 않습니다.

// 100,200좌표의 색값을 #color 변수에 넣습니다.
getColor #color 100 200  
toast 색값 #color

:end

4.2.29. Toast text

text의 내용을 안드로이드 토스트 메세지로 보여줍니다.

      • Params
        • text: 토스트로 출력할 문자입니다. 변수를 포함하여 사용해도 됩니다.
var #color 0
:start
// 토스트 메세지를 보여줍니다.
toast 토스트 메세지 입니다
sleep 3000

// 100,200좌표의 색값을 #color 변수에 넣습니다.
getColor #color 100 200  
toast 색값 #color

:end

4.2.30. Log text

text 의 내용을 로그에 기록합니다. 로그는 로그메뉴를 누르시면 확인 가능합니다.

      • Params
        • text: 로그에 기록할 문자입니다. 변수를 포함하여 사용해도 됩니다.
var #color 0
:start
// 100,200좌표의 색값을 #color 변수에 넣습니다.
getColor #color 100 200
// 로그에 기록을 남깁니다.
log (100,200)의 색값은 #color  
:end

4.2.31. //

//(주석)은 스크립트상에는 존재 하나 실제로 스크립트가 실행될때에는 실행되지 않습니다.
스크립트에 대한 설명을 기록하거나 다른 스크립트를 잠시 사용하지 않을때 맨앞에 // 라고 적어 주시면됩니다.

var #color 0
:start
// 만든이 : 히로
// 날짜: 2014년 4월 10일

toast 안녕하세요.
sleep 3000
// toast 반갑습니다.

:end

5. 부록

5.1. 키보드 키값

히로매크로에서 키보드 키 값은 각 키당 하나의 값을 갖고 있습니다. 실제 입력시 키보드를 입력하듯이 입력해야 합니다. 예로  K_R 키보드는 값은 소문자 r 을 입력하지만 K_SHIFT_LEFT 를 다운한 상태에서  K_R 키 값을 다운하게 되면 대문자 R  이 입력됩니다. 또는 부록 4.2 키보드 한영전환 인 경우에는 기본적으로 ㄱ 이 입력되며  K_SHFT_LEFT 를  다운한 상태에서는 ㄲ 이 입력됩니다. 이는 모든 키에 적용되며  K_META_LEFT 와 K_B (기본브라우져 열기) K_META_LEFT 와 K_P (기본 인터넷 플레이어 )  와 같은 단축키도 입력이 가능합니다.
KEYMAP2
(모든 키는 대문자로 정확히 입력하셔야 합니다.)


5.2. 키보드 한영전환

안드로이드 기본 한영전화 키는 K_SHFIT_LEFT 와  K_SPACE를 동시에 누르는것으로 전환을 합니다.
하지만 설정 -> 언어 및 입력에 등록된 기본 키보드에 따라 단축키가 인식을 하지 않을수 있습니다.
이때는 구글플레이에서 구글 한글 키보드를 다운로드 하고 설정-> 언어 및 입력에서 기본키보드로 등록해 주시면 키보드 한영전환을 사용 가능 합니다.

// 키보드 왼쪽 shift키를 누른상태
keyDown K_SHFT_LEFT
sleep 30

// 키보드 space키 를 누른상태 한영 전환댐
keyDown K_SPACE
sleep 30

// 키보드 space키를 땐상태
keyUp K_SPACE
sleep 30

// 키보드 왼쪽 shift키를 땐상태
keyUp k_SHIFT_LEFT