단계 편집기가 보고하는 문제
단계 편집기는 편집하는 동안 단계를 검사합니다. 메시지는 네 곳에 나타납니다. 필드 아래, 단계 행의 칩, 목록 아래의 단계가 저장되지 않았습니다: 메시지, 그리고 단계를 행으로 표시할 수 없을 때 목록 자리입니다.
필드 아래
문제가 있는 필드는 입력하는 동안 빨간 테두리가 생기고 그 아래에 메시지가 표시됩니다. 필드에 검사를 통과하지 못한 입력 텍스트가 있는 동안에는 단계가 저장되지 않습니다. 목록 아래에 단계가 저장되지 않았습니다: 단계 N에 올바르지 않은 필드가 있습니다가 표시되고, 필드를 고칠 때까지 작업은 마지막으로 저장된 단계를 유지합니다 (단계가 저장되지 않음).
빈 필드는 메시지를 표시하지 않으며 저장을 막지 않습니다. 단계는 필드가 빈 채로 저장됩니다. 작업이 실행될 때 숫자, 참 또는 거짓, 창 필드가 비어 있는 단계는 그 자리에서 작업을 중지하며, 콘솔의 시스템 출력에 그 인수의 형식이 잘못되었다고 표시됩니다. 빈 텍스트 필드는 빈 텍스트로 실행되며, 일부 기본 제공 함수(파일 이름, 찾을 창 제목)에서는 단계가 아무것도 하지 않는다는 뜻입니다.
| 메시지 | 원인 | 해결 방법 |
|---|---|---|
| 필수 값입니다. | 변수 설정 단계의 변수 이름이 비어 있습니다. | 이름을 입력합니다. |
| 정수(10진수 또는 0x 16진수), 명명된 상수 또는 $변수를 입력하십시오. | 정수 필드나 횟수에 2.5나 ten처럼 다른 것이 들어 있습니다. | 숫자(앞에 빼기 기호 가능), 0x와 16진수, 또는 VirtualKey.F5 같은 명명된 상수를 입력합니다(단계 매개 변수). |
| 이 이름의 명명된 상수가 없습니다. VirtualKey.MediaPlayPause처럼 철자와 대소문자를 확인하십시오. | 정수나 숫자 필드, 또는 횟수에 VirtualKey.Mediaplaypause처럼 점이 있지만 명명된 상수가 아닌 이름이 들어 있습니다. | 이름을 고칩니다. 대/소문자를 구분합니다. 이름은 명명된 상수에 나열되어 있습니다. |
| 숫자나 $변수를 입력하십시오. | 숫자 필드에 숫자가 아닌 것이 들어 있습니다. | 소수점으로 마침표를 사용하고 천 단위 구분 기호는 쓰지 않습니다: 1234.5. |
| true 또는 false나 $변수를 입력하십시오. | 변수 설정 단계의 참 또는 거짓 값에 다른 것이 들어 있습니다. | true 또는 false를 입력합니다. |
| 단계에서는 인수 안에서 기본 제공 함수를 실행할 수 없습니다. 먼저 변수로 옮기십시오. | 필드에 WindowGetTitle($w)처럼 괄호 안에 무언가가 있는 기본 제공 함수 호출이 들어 있습니다. | 필드 아래의 변수로 옮기기를 클릭합니다(단계 매개 변수). 이 링크가 제공되지 않으면 호출하는 단계를 직접 추가하고 결과를 저장한 다음 그 변수를 사용합니다. |
| 문자, 숫자, _를 사용하되 숫자로 시작할 수 없습니다. | 결과 저장 이름이나 변수의 변수 이름에 다른 문자가 있거나 숫자로 시작합니다. | 이름을 바꿉니다(변수). |
| 예약된 이름입니다. 다른 이름을 선택하십시오. | 변수 이름이 if, else, for, true, false입니다. | 다른 이름을 선택합니다. |
| 결과를 확인할 기본 제공 함수를 선택하십시오. | 기본 제공 함수의 결과로 설정된 조건에 아직 기본 제공 함수가 없습니다. | 기본 제공 함수 선택… 단추를 클릭하고 하나를 고릅니다. |
| "…"은(는) 키 조합에 사용할 수 없습니다. | 키 상자에 미디어 키처럼 키 조합으로 나타낼 수 없는 키가 입력되었습니다. | 다른 키를 사용하거나 키 눌렀다 떼기 단계(KeyboardPressKey)를 사용합니다(미디어 키). |
호출을 읽을 수 없을 때(예: + 같은 연산자가 들어 있을 때)나 조건인 동안 반복 또는 조건이 될 때까지 반복의
조건에서는 변수로 옮기기가 제공되지 않습니다.
문제가 아닌 안내가 하나 있습니다. 이 값은 실행되지 않고 텍스트로 저장됩니다. 기본 제공 함수의 결과를 보관하려면 해당
함수 단계에서 [결과 저장 이름]을 사용하십시오. 이 안내는 형식이 텍스트인 변수 설정 값이 WindowGetTitle($w)처럼
괄호 안에 무언가가 있는 기본 제공 함수 호출일 때 그 아래에 표시됩니다. 값은 그 문자 그대로 저장됩니다.
ClipboardGetText()처럼 괄호가 빈 호출에는 안내가 표시되지 않습니다. 값 메뉴의 읽기 값이기 때문입니다
(변수).
단계 행
| 칩 | 원인 | 해결 방법 |
|---|---|---|
| 반복 안에 있지 않음 | 보통 이동한 뒤에 반복 끝내기 단계가 모든 반복 밖에 있습니다. 그 상태로는 작업을 실행할 수 없습니다. | 반복 안으로 다시 옮기거나 제거합니다(단계 반복). |
단계가 저장되지 않음
이유가 뒤따르는 단계가 저장되지 않았습니다: 메시지는 편집기가 행을 작업에 다시 쓰지 못했다는 뜻입니다. 고칠 때까지 작업은 마지막으로 저장된 단계를 유지하며, 나머지 편집 내용은 대기합니다.
| 이유 | 원인 | 해결 방법 |
|---|---|---|
| 조건에 선택된 기본 제공 함수가 없습니다 | 조건이나 조건인 동안 반복/조건이 될 때까지 반복이 기본 제공 함수 없이 기본 제공 함수의 결과로 설정되어 있습니다. | 기본 제공 함수를 선택하거나 확인할 내용을 다른 종류로 바꿉니다. |
| 조건의 value가 호출(…)입니다. 먼저 변수에 할당해야 합니다 | 조건의 값이나 비교의 한쪽에 인수가 있는 기본 제공 함수 호출이 들어 있습니다. | 위에 그 호출을 실행하고 결과 저장 이름을 지정하는 단계를 추가하고, 조건에서 그 변수를 사용합니다. |
| 기본 제공 함수의 인수 N이(가) 호출(…)입니다. 먼저 변수에 할당해야 합니다 | 단계의 필드에 인수가 있는 기본 제공 함수 호출이 들어 있습니다. N은 단계의 필드를 1부터 셉니다. | 변수로 옮기기(단계 매개 변수). |
| 단계 N에 올바르지 않은 필드가 있습니다 | 단계 N의 필드에 검사를 통과하지 못한 입력 텍스트가 있습니다(필드 아래). 정수나 숫자 필드의 abc, 명명된 상수가 아닌 이름, 다른 텍스트가 든 참 또는 거짓 필드, 올바르지 않은 횟수, 허용되지 않는 변수 이름 등입니다. 빈 필드는 원인이 되지 않습니다. N은 단계를 1부터 셉니다. | 메시지가 표시된 필드를 고칩니다. |
단계를 목록으로 표시할 수 없을 때
단계 목록이 표시할 수 없는 텍스트로 단계가 존재하는 경우가 있습니다. 코드 보기에서 편집했거나, 가져왔거나, 구성 파일에 직접 작성한 경우입니다. 그러면 목록 자리에 다음 메시지가 표시됩니다.
이 단계는 목록으로 표시할 수 없는 흐름 제어를 사용합니다(이유). 고급 모드에서 코드로 편집할 수 있습니다.
이는 모든 단계 편집기에서 발생합니다. 작업, 코드 조각, 샌드박스, 앱 그룹의 이전 및 이후 작업, 전역 이벤트의 단계 편집기가 모두 해당합니다.
단계는 그대로 실행됩니다. 편집기가 행으로 표시하지 못할 뿐입니다. 고급 모드에서는 코드 보기에 텍스트가 표시되며, 그것이 텍스트를 편집하는 유일한 방법입니다(코드 보기). 텍스트가 다시 목록 형식을 갖추면 행이 돌아옵니다. 텍스트 형식은 단계 엔진에 설명되어 있습니다.
이유는 다음 중 하나입니다. 기울임꼴 단어는 이유가 인용하는 텍스트 부분을 나타냅니다.
텍스트 전체
| 이유 | 텍스트에서 고칠 부분 |
|---|---|
| 단계가 올바른 TOML이 아닙니다: 메시지 | 텍스트가 올바른 TOML이 아닙니다. 메시지가 위치를 알려 줍니다. |
| [[steps]] 배열이 없습니다 | 텍스트에 [[steps]] 테이블이 없습니다. |
| 최상위 키 키이(가) 단순 값이 아닙니다 | 첫 [[steps]] 위의 키에 테이블이나 목록이 들어 있습니다. 그 자리에는 단순 값만 올 수 있습니다. |
| 단계에서 목록 형식이 없는 op op을(를) 사용합니다 | 단계의 op가 목록에서 표시할 수 없는 것입니다. |
| 단계에서 목록 형식이 없는 if의 goto 형식을 사용합니다 | if가 then_goto나 else_goto로 이동하거나 goto 단계가 있습니다. if 블록과 end_if로 다시 작성하거나 텍스트로 계속 편집합니다. |
| if 단계에 조건이 없습니다 | if 단계에 condition이 없습니다. |
단계 하나
| 이유 | 텍스트에서 고칠 부분 |
|---|---|
| call 단계에 fn이 없습니다 | call 단계가 기본 제공 함수를 지정하지 않습니다. |
| set 단계에 local이 없습니다 | set 단계가 변수를 지정하지 않습니다. |
| set 단계의 call에 fn이 없습니다 | set 단계의 call이 기본 제공 함수를 지정하지 않습니다. |
| set 단계의 value가 단일 값이 아닙니다 | set 단계의 value가 목록이거나, 읽기 값({ fn = "Name" })이나 명명된 상수({ const = "Namespace.Name" })가 아닌 테이블입니다. |
| set 단계의 value가 텍스트 텍스트이며, 목록에서는 해당 기본 제공 함수의 결과로 다시 저장됩니다 | set 단계의 value가 "ClipboardGetText()"처럼 읽기 값으로 읽히는, 따옴표로 묶은 텍스트입니다. 읽기 값의 결과를 저장하려면 { fn = "ClipboardGetText" }로 쓰고, 아니면 텍스트를 바꿉니다. |
| set 단계에 value도 call도 없습니다 | set 단계에 저장할 것이 없습니다. |
| repeat 단계에는 times, while, until 중 정확히 하나가 필요합니다 | repeat 단계에 그중 아무것도 없거나 둘 이상 있습니다. |
| repeat 단계의 times가 텍스트로 저장된 숫자, 명명된 상수 또는 기본 제공 함수 호출이며, 목록에서는 숫자, 상수 또는 함수의 결과로 다시 저장됩니다 | times가 "3", "MouseButton.Middle", "MouseGetCursorX()"처럼 따옴표로 묶여 있습니다. 숫자는 따옴표 없이, 상수는 { const = "MouseButton.Middle" }로, 읽기 값은 { fn = "MouseGetCursorX" }로 씁니다. |
| repeat 단계의 times가 정수도 텍스트도 아닙니다 | times가 예를 들어 2.5나 true입니다. |
| 조건이 테이블이 아닙니다 | condition, while, until이 테이블이 아닙니다. |
| 조건에는 fn, value, compare 중 정확히 하나가 필요합니다 | 조건에 그중 아무것도 없거나 둘 이상 있습니다. |
| 조건의 not이 true도 false도 아닙니다 | not에 true나 false가 아닌 것이 들어 있습니다. |
| 조건의 fn이 비어 있습니다 | 조건의 fn이 빈 텍스트입니다. |
| 조건의 compare가 지원되는 비교가 아닙니다 | compare가 ==, !=, <, <=, >, >= 중 하나가 아닙니다. |
| 비교에는 left와 right가 모두 필요합니다 | 비교에 left나 right가 없습니다. |
| 조건의 피연산자가 단일 값이 아닙니다 | value, left, right가 목록이거나, 읽기 값이나 명명된 상수가 아닌 테이블입니다. |
| 조건이 텍스트 텍스트을(를) 비교하며, 목록에서는 숫자, 명명된 상수, true/false 또는 기본 제공 함수의 결과로 다시 저장됩니다 | 비교하는 값이 따옴표로 묶여 있지만 "3", "MouseButton.Left", "ClipboardGetText()"처럼 숫자, 명명된 상수, true/false 또는 읽기 값으로 읽힙니다. 목록은 이를 텍스트로 유지할 수 없습니다. 읽기 값은 { fn = "ClipboardGetText" }로 쓰거나 텍스트를 바꿉니다. |
| args가 배열이 아닙니다 | 단계의 args가 목록이 아닙니다. |
| 인수가 단일 값이 아닙니다 | 인수가 목록이거나, 읽기 값({ fn = "Name" })이나 명명된 상수({ const = "Namespace.Name" })가 아닌 테이블입니다. |
| 값이 존재하지 않는 상수 텍스트을(를) 지정합니다 | { const = "…" }에 명명된 상수가 아닌 이름이 있거나 텍스트가 아닌 것이 있습니다. 이름을 고칩니다. 대/소문자를 구분합니다. |
짝이 맞지 않는 블록
N은 단계의 위치이며 1부터 셉니다.
| 이유 | 텍스트에서 고칠 부분 |
|---|---|
| 단계 N은(는) if 블록 밖의 else입니다 | 앞에 열린 if가 없는 else입니다. |
| 단계 N은(는) 한 if 블록의 두 번째 else입니다 | if 블록에 else 단계가 두 개 있습니다. |
| 단계 N이(가) 열려 있지 않은 블록을 닫습니다 | 짝이 되는 열린 블록이 없는 end_if나 end_repeat입니다. |
| 단계 N에서 연 블록이 닫히지 않습니다 | end_if나 end_repeat가 없는 if나 repeat입니다. |
편집기 주변의 알림
| 알림 | 의미 |
|---|---|
| 이 모드에는 설정된 내용이 없으므로 실행해도 아무 동작도 하지 않습니다. 모드 내용은 보존되지만 실행되지 않습니다. | 다른 모드에 내용이 있는데 작성 방식이 빈 모드로 설정되어 있습니다. 모드 사용 단추를 클릭하면 다시 전환됩니다(단계, 스크립트, AutoHotkey). |
| 일반 설정에서 AutoHotkey 지원이 꺼져 있으므로 사용하도록 설정할 때까지 이 작업은 아무 동작도 하지 않습니다. | 작업이 AutoHotkey로 실행되는데 AutoHotkey가 꺼져 있습니다(AutoHotkey). |
| “엔진” 엔진을 제공하는 등록된 플러그 인이 없으므로 이 스크립트는 실행 시 건너뜁니다. 플러그 인 페이지에서 플러그 인을 추가하거나 다른 모드를 선택하십시오. | 작업이 플러그 인의 엔진에서 실행되는데 그 플러그 인이 등록되어 있지 않습니다(플러그 인). |