﻿마루 명령 (MaruCommand) 사용법
================================

글로 명령을 입력하면 프로그램을 켜거나, 사이트를 열거나, 키보드/마우스를 조작하는 Windows 프로그램입니다.
관리자 권한은 기본 모드에서는 필요 없습니다. (게임용 Interception 모드만 관리자 + 드라이버 필요)

버전: 2026.10.19.5

[설치]
1. Python 3.10 이상 설치 (https://www.python.org/downloads/)
   설치할 때 "Add python.exe to PATH" 체크
2. 압축을 풀고 run_command.bat 더블클릭
   - C:\MaruCommand 에 설치되고, 필요한 패키지를 자동으로 받습니다 (처음엔 몇 분 걸림)
   - 바탕화면에 MaruCommand.bat 이 생깁니다
3. 다음부터는 바탕화면의 MaruCommand.bat 으로 실행
   (압축 푼 폴더는 지워도 됩니다)

[앱 / 사이트 명령]
  메모장 열어줘
  네이버 들어가줘
  크롬으로 유튜브 켜줘
  메모장 열고 구글 들어가
  고양이 검색해줘
  유튜브에서 lofi 검색
  example.com 들어가

[키보드 / 마우스 명령]
  엔터 눌러
  esc 눌러줘
  ctrl+c 눌러
  컨트롤 시 눌러
  alt+tab
  f5 눌러
  스페이스 3번 눌러
  안녕하세요 입력해줘
  'hello world' 타이핑
  클릭 / 더블클릭 / 우클릭
  500 300 클릭
  화면 가운데 클릭
  마우스 500 300으로 이동
  아래로 스크롤 / 위로 3번 스크롤
  2초 기다려

[브라우저 자동화 (2026.10.19.4 새 기능)]
앱이 엣지(없으면 크롬)를 직접 열어서, 화면 좌표가 아니라 페이지에 보이는
글자/입력칸 이름으로 버튼을 찾아 누르고 입력합니다. 창 크기가 바뀌어도 됩니다.
  네이버 들어가서 로그인 버튼 눌러줘
  로그인 버튼 눌러줘          (자동화 브라우저가 열려 있을 때)
  로그인 클릭해줘
  아이디칸에 "myid" 입력해줘
  비밀번호 칸에 "pw" 입력
  엔터 눌러                  (자동화 브라우저가 열려 있으면 브라우저로 보냄)
  구글 들어가서 검색창에 "고양이" 입력하고 엔터 눌러
  아이디칸에 "a" 입력하고 비밀번호 칸에 "b" 입력하고 로그인 버튼 눌러
  네이버 로그인해줘 / 구글 로그인해줘 / 깃허브 로그인해줘   (저장된 계정으로 자동 로그인)
  브라우저 닫아줘
- 입력할 내용은 따옴표로 감싸 주세요. "아이디 입력해줘"처럼 내용이 없으면
  '아이디'라는 글자를 치지 않고 무엇을 넣을지 물어봅니다.
- "네이버 들어가줘"처럼 사이트만 열면 예전처럼 기본 브라우저로 엽니다.
  뒤에 버튼 누르기/입력이 이어지면 자동화 브라우저로 엽니다.
  항상 자동화 브라우저로 열려면 [설정] → "브라우저 자동화 사용"을 켜세요.
- 자동화 브라우저는 따로 된 프로필(%LOCALAPPDATA%\MaruCommand\browser-profile)을
  써서, 한 번 로그인하면 다음에도 로그인이 유지됩니다. 평소 쓰는 엣지와는 별개입니다.
- 엣지와 크롬이 둘 다 없으면 [설정] → "Chromium 설치" 버튼을 누르세요.
- 버튼을 못 찾으면 "'○○' 버튼/링크를 페이지에서 찾지 못했어요"라고 알려 주고
  남은 동작은 멈춥니다. 버튼에 보이는 글자 그대로 말해 보세요.

[자동 로그인 / 로그인 관리]
- [설정] → 로그인 관리 → [추가]: 사이트 이름, 로그인 주소, 아이디, 비밀번호
  (네이버, 구글, 깃허브는 주소가 자동으로 채워집니다. 다른 사이트도 추가 가능)
- 비밀번호는 Windows 자격 증명 관리자에만 저장됩니다.
  settings.json, 기록 창, AI 어디에도 들어가지 않습니다.
  (제어판 → 자격 증명 관리자 → Windows 자격 증명 → "MaruCommand" 항목)
- "네이버 로그인해줘" → 로그인 화면을 열고 아이디/비밀번호를 한 글자씩 입력한 뒤 로그인을 누릅니다.
- 캡차(자동입력 방지), 2단계 인증, 휴대폰 확인이 나오거나 로그인이 안 되면
  거기서 멈추고 알려 줍니다. 열린 브라우저에서 직접 마무리하세요.
  네이버는 자동 입력을 감지하면 캡차를 자주 띄웁니다. [설정] → 타자 간격을
  늘리면(예: 200ms) 조금 나아질 수 있습니다.
  구글은 자동화 브라우저 로그인을 막을 수 있습니다 ("안전하지 않은 브라우저").
  그때는 열린 창에서 직접 로그인하세요. 한 번 로그인하면 프로필에 유지됩니다.

[일반 앱 버튼을 이름으로 누르기]
  메모장에서 파일 메뉴 눌러줘
  계산기에서 7 버튼 눌러줘
- Windows UI 자동화로 메모장·계산기·그림판 같은 일반 앱의 버튼/메뉴를 이름으로 찾습니다.
- 게임처럼 화면을 직접 그리는 프로그램은 이름이 없어서 안 됩니다 → 좌표 클릭(500 300 클릭)을 쓰세요.

[여러 개 이어 쓰기]
  메모장 열고 2초 기다리고 안녕하세요 입력해줘
  메모장 열고 안녕하세요 입력해줘
   └ 앱을 연 직후엔 자동으로 약 1초를 기다려 준 뒤 입력을 보냅니다.

[쓸 수 있는 앱]
  메모장, 계산기, 그림판, 탐색기, 명령프롬프트, 크롬, 엣지, 인터넷/브라우저

[등록된 사이트]
  네이버, 유튜브, 구글, 다음, 마루365(마루), 깃허브

[입력 방식]
- 기본(SendInput): Windows 표준. 메모장·브라우저 등 일반 프로그램에 잘 됩니다.
  한글 입력도 이 방식으로 보냅니다.
- Interception: 게임이 일반 입력을 무시할 때. 마루버프와 같이
  1) https://github.com/oblitum/Interception/releases 에서 드라이버 설치
  2) PC 재부팅
  3) pip install interception-python
  4) 마루 명령을 관리자 권한으로 실행
  5) [설정] → 입력 방식 → Interception
- [설정]의 "입력 테스트"는 실제로 키를 누르지 않고 준비 상태만 확인합니다.

[자동 업데이트]
- 기본으로 시작 시 maru365.com 에서 새 버전을 확인합니다. (설정에서 끌 수 있음)
- 메인 화면 [업데이트] 버튼 또는 설정 → "업데이트 확인"으로 수동 확인
- 새 버전이 있으면 변경 사항을 보여 주고, 동의하면 zip을 받아 sha256 검사 후 설치합니다.
- 설치 폴더의 venv 와 %APPDATA%\MaruCommand 설정은 유지됩니다.
- 다운로드는 maru365.com 만 허용합니다. 주소가 다르거나 해시가 다르면 거부합니다.
- .exe(PyInstaller)로 실행 중이면 자동 패치 대신 https://maru365.com/maru-command.html 을 엽니다.

[안전]
- 상단 "입력 명령 허용" 체크 (기본 켜짐). 끄면 키/마우스/텍스트 입력을 실행하지 않습니다.
- [중지] 버튼, 또는 마우스를 화면 왼쪽 위(0,0)로 옮기면 실행 중인 순서가 멈춥니다.
- Win+R, Alt+F4, Win+L, Ctrl+Alt+Delete, Ctrl+Shift+Esc 는 기본 차단됩니다.
  꼭 필요하면 [설정] → "위험 단축키 허용"을 켜세요.
- 셸에 임의 명령을 넣는 경로는 없습니다.
- 자동화 브라우저 명령은 http/https 주소만 열고, 그 브라우저 창 안에서만 누르고 입력합니다.
  ("입력 명령 허용"을 꺼도 자동화 브라우저 동작은 됩니다. 앱 버튼 누르기는 막힙니다.)

[AI 해석 (선택)]
- 규칙으로 이해하지 못한 문장만 xAI(Grok) API로 해석합니다. 기본은 꺼져 있습니다.
- console.x.ai 에서 API 키를 만든 뒤 [설정]에 입력하고 "AI 해석"을 체크하세요.
- AI가 답해도 허용된 동작만 다시 검사한 뒤 실행합니다 (최대 20개).
- 설정 파일: %APPDATA%\MaruCommand\settings.json
- 오류 기록: %APPDATA%\MaruCommand\error.log

[exe 만들기 (선택)]
- build_windows.bat 실행 → dist\MaruCommand.exe
