﻿creative republic RPL

사용자가 마우스로 수행한 작업을 기록하고 하나의 세트로 저장하는 Windows 프로그램입니다.
여러 프로그램과 이미 열려 있는 창 사이의 작업을 한 세트로 만들 수 있습니다.
학습은 동작 기록 방식이며, 기록한 순서·위치·대기시간을 사용하여 재생합니다.

빠른 시작

1. ZIP을 모두 압축 해제하고 CreativeRepublicRPL.exe를 일반 권한으로 실행합니다.
   먼저 관리자에게 받은 회원 아이디·비밀번호로 서버 로그인을 완료해야 합니다.
   로그인 화면의 MAC 주소를 관리자에게 등록받고 기기 키 승인까지 완료하세요.
2. 작업할 프로그램과 창을 미리 열어 두고 크기·배율·화면 내용을 맞춥니다.
3. 세트 이름을 입력하고 '학습하기'를 누릅니다.
4. 5초 안에 첫 작업 창으로 돌아간 뒤, 평소처럼 마우스로 작업합니다.
5. 작업이 끝나면 RPL로 돌아와 '저장'을 누릅니다.
   학습이 끝나고 저장 창이 열립니다. 이름.rpl.json 파일 하나가 만들어집니다.
6. 기록을 먼저 검토하려면 '학습 중지'를 누르고 목록을 확인합니다.
   선택 동작 삭제와 앞 대기시간 수정을 적용한 뒤 저장할 수 있습니다.
7. '세트 재생 (1회)'를 누르고 각 역할에 사용할 실제 창을 연결합니다.
8. 5초 안에 첫 역할의 창을 직접 활성화하고 마우스/키보드에서 손을 뗍니다.
9. 기록된 작업을 한 번 재생합니다. 끝나면 실제 프로그램의 결과를 직접 확인합니다.

다시 사용하려면 '세트 열기'에서 저장한 .rpl.json 파일을 선택합니다.
앱 종료 시 세트는 자동 저장하지 않습니다. 저장하지 않은 작업이 있으면 종료 전에 확인합니다.
보안 설정과 백신/방화벽 설정을 변경하는 기능은 없습니다.

먼저 연습하기

'연습 창 추가'를 두 번 눌러 창 두 개를 엽니다.
두 창이 겹치지 않게 배치하고 학습을 시작합니다.
첫 창의 클릭 테스트 버튼을 누른 뒤 둘째 창으로 옮겨 버튼을 누르고 학습을 저장합니다.
각 창의 클릭 수를 확인한 뒤 같은 세트를 재생하여 순서와 횟수를 확인합니다.
학습 중 RPL의 저장·중지 버튼, 기록 표시창, 작업 표시줄 클릭 자체는 세트에 포함하지 않습니다.
작업 표시줄이나 Alt+Tab으로 바뀐 창은 '창 전환' 동작으로 저장합니다.

기록하는 것

- 여러 창의 전환 순서와 대기시간
- 각 창 안의 마우스 이동 (최대 약 60회/초로 표본 기록)
- 왼쪽/오른쪽/가운데 버튼의 누름과 놓기, 더블클릭
- 같은 창 안에서의 드래그
- 세로/가로 휠 스크롤

키보드 입력, 비밀번호, 클립보드 내용, 화면 영상은 학습하지 않습니다.
Shift/Ctrl/Alt/Windows 키와 조합한 마우스 동작은 지원하지 않아 학습을 중지합니다.
키보드로 입력한 글자와 단축키 작업은 재생되지 않습니다.
각 창 밖을 가로지르는 이동 경로와 작업 표시줄 동작은 기록 대상에서 제외합니다.
학습 중 새로 생기는 창·대화상자·메뉴의 조작, 창 이동/크기 변경, 창을 넘는 드래그는 지원하지 않습니다.
필요한 창을 미리 열고 그 창 안에서 작업하세요.

학습 표시와 중지

학습하기를 누른 뒤 5초가 지나야 마우스 기록이 시작됩니다.
학습 중에는 제목에 '학습 중'이 표시되고 별도 중지 표시창이 나타납니다.
마우스 기록은 학습 중에만 켜고 중지/저장/종료 시 해제합니다.
별도 키보드 후킹이나 일반 키 입력 기록은 없습니다.

대기·학습·재생 중 Esc 또는 Ctrl+Alt+F10, 메인 중지 버튼을 사용할 수 있습니다.
학습 표시창을 눌러도 중지합니다. 중지 단축키를 등록하지 못하면 학습/재생을 시작하지 않습니다.
이미 전달한 입력과 그 입력으로 실행된 작업은 되돌릴 수 없습니다.
재생 중 실제 마우스를 움직이거나 다른 키/마우스 버튼을 누르면 남은 동작을 중지합니다.
재생 중 창이 사라지거나 이동/크기/배율이 바뀌거나 다른 창에 가려지면 중지합니다.
버튼을 누른 상태에서 중지되면 RPL이 누른 버튼만 놓기를 시도합니다.
학습 중 끝나지 않은 누름/드래그는 세트에서 제외하고 안내합니다.

세트 재생 조건

창 역할마다 프로그램 이름, 창 종류, 창 크기, 배율을 확인한 뒤 실제 창을 연결합니다.
동일한 앱의 창이 여럿이면 역할마다 서로 다른 창을 직접 지정하세요.
창을 학습 때와 다른 위치에 배치할 수 있으나 크기·배율·내부 화면 배치는 같아야 합니다.
창 연결 후에는 재생이 끝날 때까지 위치와 크기를 바꾸지 마세요.
모니터의 전체 좌표 구성도 학습 때와 같아야 합니다.

창 전환에는 일반 Windows 활성화 요청을 한 번만 사용합니다.
Windows 또는 보안제품이 거부하면 중지하고 다른 방식으로 재시도하지 않습니다.
입력에는 일반 SendInput을 사용합니다. OS가 수락해도 앱이 처리했는지는 별도 확인해야 합니다.
고정 좌표·시간을 재생하므로 앱의 로딩이 늦거나 내부 화면이 바뀌면 의도와 달라질 수 있습니다.
동작 목록의 대기시간을 조정하고, 화면 배치가 달라졌으면 다시 학습하세요.
이번 버전은 마우스 매크로이며, 버튼의 의미·업무 데이터·성공 결과를 자동 검증하지 않습니다.
등록·전송·결제·삭제 같은 동작이 포함된 세트는 실행 전에 직접 검토하세요.

목록 수정

'선택 동작 삭제'는 선택한 행을 제거합니다. Ctrl 또는 Shift로 여러 행을 선택할 수 있습니다.
누름/놓기 중 하나만 삭제하거나 필수 창 전환을 지우면 저장/재생 전 검사에서 거부됩니다.
'선택 동작 앞 대기(ms)' 값을 입력하고 적용하면 이후 동작도 같은 만큼 밀리거나 당겨집니다.
세트는 최대 20개 창, 20,000개 동작, 30분을 지원합니다. 반복/예약/자동 시작 기능은 없습니다.

파일과 개인정보

세트 파일에는 이름, 생성 시간, 창 역할/프로세스 이름/종류/크기/배율,
상대 좌표, 마우스 동작, 대기시간, 모니터 구성이 들어갑니다.
창 제목은 연결 화면에서만 보여 주며 세트에 저장하지 않습니다.
배경에서 상시 기록하거나 작업을 자동 업로드하지 않습니다.
회원·기기 인증을 위해 https://rpl.testpang.com 과 HTTPS로 통신합니다.
서버에는 회원 계정, 선택한 MAC 주소, 공개 기기 키/지문, 로그인·접속 시간과 접속 IP를 전달합니다.
비밀번호는 HTTPS 로그인 요청에만 사용하고 PC에 저장하지 않습니다.
기기 개인 키는 현재 Windows 사용자 계정으로 암호화하여 LocalAppData의 RPL 폴더에 보관합니다.
마우스 작업 세트, 키보드 입력, 화면 이미지는 인증 서버에 전송하지 않습니다.

회원·기기 승인

관리자: https://rpl.testpang.com/admin
관리자가 회원을 직접 등록하고 승인한 뒤 해당 회원의 MAC 주소를 등록합니다.
PC에서 처음 로그인하면 기기 공개 키가 등록되고 승인 대기가 됩니다.
관리자가 MAC 주소와 기기 키 지문을 확인하여 기기를 승인한 후 PC에서 다시 로그인합니다.
MAC 주소만 일치해도 기기 개인 키가 다르면 인증하지 않습니다.
유선·Wi-Fi 중 로그인 화면에서 선택한 어댑터의 MAC 주소로 승인받으세요.
Wi-Fi 무작위 MAC, 네트워크 어댑터 변경, Windows 사용자 변경·재설치 시 재승인이 필요할 수 있습니다.

로그인 후 약 30초마다 서버 승인을 확인하고 학습·재생 시작 전에도 확인합니다.
승인 해제, 계정 만료, MAC 불일치, 통신 실패 시 학습·재생을 중지합니다.
인터넷 연결과 인증 서버 접속이 필요하며, 오프라인 인증으로 실행하지 않습니다.
인증이 해제되어도 진행 중이던 세트는 저장할 수 있습니다.
관리자는 기기를 중지하거나 기기 키를 초기화할 수 있으며 이때 기존 인증도 해제됩니다.

'입력·화면 테스트'에는 기존의 단발 클릭·고정 문자열 입력·캡처 미리보기 기능이 있습니다.
이 창의 JSON 결과와 PNG 이미지는 사용자가 별도로 저장할 때만 파일로 남깁니다.
화면 확인이 차단되면 이를 우회하는 기능은 없습니다.

실행 환경과 검증 상태

Windows 10 1607 이상 또는 Windows 11, .NET Framework 4.8 이상이 필요합니다.
AnyCPU 실행파일입니다. 관리자 권한이면 종료하며 런타임/드라이버를 설치하지 않습니다.
이 배포본은 코드 서명이 없습니다. 보안제품이 차단하면 설정을 변경하지 말고 담당자 검토를 받습니다.
학습은 Windows의 표준 마우스 이벤트 알림을 사용합니다. 보안 환경이 이를 제한할 수 있습니다.
프로세스 주입, 보안 설정 변경, 차단 회피, 키보드 입력 수집 기능은 없습니다.

Windows용 빌드와 기록/세트 검증/저장·불러오기/입력 패킷의 자동 검사를 완료했습니다.
회원 승인·기기 승인·기기 키 서명·인증 해제의 서버 자동 검사를 완료했습니다.
현재 제작 환경은 Mac으로 실제 Windows UI, 마우스 기록, 여러 앱의 창 전환 재생은 아직 미검증입니다.
실기기 검증 절차가 함께 들어 있습니다. 개발 소스는 별도 로컬 파일로 보관합니다.

참고 문서
https://learn.microsoft.com/en-us/windows/win32/winmsg/lowlevelmouseproc
https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-sendinput
https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setforegroundwindow
