/EmulatorMacro

AppPlayer Macro(Nox, LDPlayer(momo), Peak)

Primary LanguageC#MIT LicenseMIT

연결 프로세스의 화면을 분석해서 키보드나 마우스 이벤트 반복

다운로드 : https://github.com/EomTaeWook/EmulatorMacro/releases

개발환경

WPF, C#, .net 4.7.1

UI toolkit : MahApps.metro

OS 버전

Window 8.0 이상

주의 사항

1.Macro 실행시 앱플레이어 이미지에 여백이 발생하는 경우

	- Datas\ApplicationData.json => IsDynamic [true][false]를 변경하시면 됩니다.

2.주 모니터 확대 비율이 더 높아야합니다.

	-주 모니터 DPI 100% 보조 모니터 150%인 경우에 대해선 기능을 처리 하지 않았습니다. 주 모니터 150%, 보조 모니터 100% 이런 식이 되어야 합니다.

사용 방법

1.트리거 저장

    1.1 화면 캡쳐 버튼를 통하여 찾고 싶은 이미지 캡쳐

    1.2 Image, Mouse, Keyboard, RelativeToImage 이벤트 선택

        1.2.1 Image : 찾은 이미지를 클릭합니다.
            
            - 찾은 이미지 내에서 랜덤 클릭합니다.(좌표 패턴화 되는 것을 방지합니다.)

            - 고정된 좌표를 클릭하는 마우스 이벤트보다 우선시 해주세요.

        1.2.2 Mouse : 좌표 지정(좌클릭, 우클릭, 드래그) 해주시면 됩니다.
    
        1.2.3 Keyboard : Ctrl + c + v 이런식으로 조합키를 넣어주면 됩니다.

        1.2.4 RelativeToImage : 찾은 이미지로부터 +- 한 거리를 클릭합니다.(아이디어 Ko9ma7 제공)
    
    1.3 실행시 이미지를 캡쳐할 실행 프로세스를 선택하시면 됩니다.

    1.4 후 작업 딜레이

        - 현재 작업이 완료 이후 어느 정도 대기를 한 후 다음 작업을 하고 싶은 경우에 사용하시면 됩니다.(아이디어 Ko9ma7 제공)

        - ex> 버튼 클릭 => 팝업 뜨기까지 대기 => 확인 버튼 클릭 (연계하는 경우)

    1.5 아이템 반복
    
        - 한번 : 한번만 발생합니다.

        - 횟수 : 횟수만큼 반복 실행합니다.

        - 검색 결과가 없을 때까지 : 하위 아이템 하나라도 실행이 된다면 반복해서 실행됩니다.(하나라도 실행이 안되면 다음 Item으로 넘어갑니다.)

        - 검색 이미지를 찾을 때까지 : 상위 이미지를 찾을때까지 하위 이벤트를 반복 실행합니다.(상위 아이템을 발견시 다음 Item으로 넘어갑니다.)

    1.6.바로가기(아이디어 Ko9ma7 제공)

        - 입력된 이벤트로 바로 이동합니다.

    1.7 저장

2.드래그 앤 드랍으로 트리 노드 순서도 변경

    2.1 상위 아이템 밑으로 드래그 앤 드랍시 자식 노드로 추가

    2.2 자식 아이템을 상위 아이템 포커싱 밖으로 드래그 앤 드랍시 최상위 노드로 추가

        - 우측 스크롤 쪽 또는 제일 하단 또는 트리 컬럼 쪽

3.여러 게임의 세이브 파일을 저장하고 싶은 경우 setting에서 세이브 경로를 다르게 하여 저장하세요.

4.연결 프로세스 리스트 
    
    - 프로세스가 목록에 없는 경우 또는 종료되거나 새로운 프로세스를 실행 시켰을시엔 새로고침 버튼을 눌러주세요.

    - 연결 프로세스를 고정하게 되면 save된 프로세스 이름으로 전체를 검색하는 것이 아닌 고정된 프로세스에서만 검색하게 됩니다.(녹스 여러개 대응)    

※ 이미지 조합을 통한 이벤트 발생 방법

설정(Config.json 혹은 프로그램 내 Setting)

1.Language 언어 : [Eng],[Kor]

2.SavePath : 설정 리스트 save 경로

3.Period : 전체 작업 완료 이후 딜레이

4.ItemDelay : 트리거 아이템 작업 완료 다음 작업까지 딜레이(공통)

5.Similarity : 이미지 프로세싱 유사도

6.SearchResultDisplay : [true],[false] : 이미지 검색 결과 표시 여부

7.VersionCheck : [true],[false] : 프로그램 실행시 버전 체크 확인

작업 목록

1.게임 전용 HP/MP 체크 이벤트 발생(작업중)

12.마우스 휠 기능 숫자로 입력 => 드래그 기능이 구현되어 있지만 휠 기능으로 보완(작업중, 추후 업데이트)

	- 기능 자체는 완료되었으나 테스트 결과 각각의 Child 창 조사 및 창의 마우스 좌표계가 아닌 전체 스크린 영역의 마우스 좌표계 적용된다는 점. 

	- Wheel Event를 받는 Child 창을 다 조사해야하고 현재 구조를 또 바꿔야함.

버그 레포팅

enter0917@naver.com

릴리즈

2.4.2

- 녹스 클릭 이벤트 버그 수정

2.4.1

1.저장 버그 수정

2.녹스 앱플레이어 사용시 {설치 경로}\\Datas\\ApplicationData.json 에서 Nox 부분을
{
    "Code": "Nox",
    "IsDynamic": true,
    "HandleName": "",
    "OffsetX": 0,
    "OffsetY": 0
},

변경이 필요합니다.

2.4.0

1.바로가기 기능 추가

2.Target 버전 .Net 4.7.1 변경(닷넷 프레임워크 4.7.1 이상 필요합니다.)

3.패쳐 수정

2.3.6

1.복사 기능 추가

2.3.5

1.Peak 지원

2.위치 변경시 저장 버튼 눌러야 적용 => 자동 저장 변경

2.3.4

1.LDPlayer 지원

- DPI 기능, 좌표가 안 맞는 경우 Datas/ApplicationData.json 에서 설정하시면 됩니다.

2.3.3

1.반복 기능 추가

2.이미지 이벤트 클릭 변경

- 찾은 이미지 내에서 랜덤 클릭(클릭 이벤트 좌표계 패턴화 되는 것을 막습니다.)

- 마우스 클릭보다 우선시 해주세요.

2.3.1

- 키보드 이벤트 오류 수정

2.3.0

2019-02-07 Feedback

1.찾은 이미지로부터 +- 한 좌표 클릭 이벤트 추가

2.이미지 검색 결과 표시 여부 추가(setting)

2.2.1

- 버그 수정

2.2.0

1.하위 아이템 반복 기능 추가

2.선택시 삭제 버튼 안 보이는 버그 수정

2.1.0

1.마우스 이벤트 드래그 기능 추가

2.연결 프로세스 고정 기능 추가

2.0.0

1.기존의 Save 파일은 지원 안됩니다.

2.이벤트 목록 트리 형식으로 변경

- 자식 노드가 있는 경우 이미지를 검색만 합니다.

- 자식 노드가 없는 경우 이벤트가 발생됩니다.

- 사용 방법

    드래그 앤 드랍으로 노드 레벨을 변경합니다.

    클릭하고 버튼으로 위치 이동

ex) item 이미지 검색

    ㄴ item 이미지 검색

        ㄴ item 트리거 발생

    ㄴ item 이미지 검색
    
3.버그 수정

1.4.4

1.리스트 드래그 앤 드랍 방식 변경

2.이벤트 타입 키보드인 경우 저장 안되는 현상 수정

3.성능 개선

4.이벤트 타입 추가

5.설정 최소 값 100ms 통일

1.4.3

- DPI 버그 수정, SavePath 팝업으로 저장시 불러오기 제대로 안되는 부분 수정, 최소 설정 값 수정, 라벨 변경

1.4.2

- 단일 작업별 후 딜레이 적용 안되는 버그 수정

1.4.1

- 리스트 아이템 드래그 앤 드랍시 순서도 정확하게 변경 안되는 버그 수정

1.4.0

2019-01-15 Feedback

1.단일 작업별 후 딜레이 설정(후 딜레이 => 아이템 개별 설정)

2.버전 체크 옵션화

3.저장 방식 변경 =>

트리거 아이템 변경시 원본을 남겨두고 마지막에 추가 방식 => 트리거 아이템 원본 수정

1.3.1

- 모니터별 해상도 별 이미지 프로세싱 작업 완료, 마우스 이벤트 좌표계 버그 수정

1.3.0

- 리스트 Drag And Drop으로 순서 변경 기능 추가

1.2.2

- 버전 체크 및 Install 파일 변경

1.2.1

1.Mouse Event 방식 변경

2.물리적인 마우스 이벤트 -> 논리적 마우스 이벤트 방식의 변경

3.프로그래스바 버그 수정

1.2.0

1.setting view 추가

2019-01-09 Feedback

2.작업간의 중간 딜레이 설정 기능 추가, 딜레이를 통한 CPU 사용률 저하 확인

1.1.1

- UI 비동기 처리가 안 되어서 프로그램이 응답없음 뜨는 오류 수정.

1.1.0

- 세이브 파일 확장성 고려 및 에뮬레이터 사이즈 변경없이 이동시키는 경우 마우스 보정 작업

1.0.0

- 기본 기능 완료