c# Winform 개발
-
매크로 개발일기 #6c# Winform 개발/매크로 2021. 7. 26. 09:53
HP 인식기능에 문제가 있기에 조금 수정함 1. 프로세스별로 화면단에서 클라이언트 영역을 각각 검사함 -> 여러개의 에뮬레이터가 떠있을때 각각 매크로가 동작 -> 쓰레드에서 처리하며 각각의 HP 퍼센트 인식 및 공격상태를 확인 -> 이제 동일게임 다른 에뮬레이터까지 적용가능 2. 화면에 적대관계 마크 출현시 순간이동 -> 1초~5.5초 사이 랜덤으로 순간이동 시킴 ( 최대한 사람처럼 보이기 위해서 ) -> 화면캡쳐 3. 순간이동기능만 넣어서 리니지M용으로 빌드 -> 테스트해보니 잘됨 정해진 시간마다 순찰/공격 기능까지 매크로로 만들예정이었으나 돈도 안되는 이런거 만드는데 황금같은 주말 1~2시간을 쓰는것에 급회의감이 밀려옴 고민중임
-
매크로 개발일기 #4c# Winform 개발/매크로 2021. 7. 16. 10:28
이제 기능 테스트는 어느정도 끝났고 대충 흐름은 다음과 같다. - 게임 흐름 오토사냥 -> 피격중 (누군가가 공격하면) -> 우측하단에 칼모양 마크가 뜸 -> 칼모양 뜬 트릭스터M 플레이어 클릭한번하고 -> 순간이동 키 입력 - 코드 흐름 시작 -> 캡처준비 / 키,마우스 입력초기화 -> 시작버튼 클릭 -> 쓰레드생성 -> 모니터링 -> 종료누르면 쓰레드중지 쓰레드 - 화면캡처 - 이미지 비교 - 칼모양뜬곳 주변 마우스 클릭 - 키입력 - 현재화면 파일로 저장 준비완료 됬으니 개발만 하면됨
-
매크로 개발일기 #3c# Winform 개발/매크로 2021. 7. 16. 10:07
확인한 사항은 다음과 같음 1. 화면캡처 - 트릭스터M 핸들로 프로세스 캡쳐 -> MainHandle이 가끔 0으로 나올때 있음. -> 윈도우 전체화면을 스크린샷 뜨자 2. 캡처된 화면에서 필요한 부분찾기( 공격당하는중일때 이미지 ) - opencv에서 이미지 비교하여 일치율 몇퍼센트 이상인지 구하는 방법 존재( 검색시 많이나옴 ) 3. 키,마우스 입력 - keydown, mousedown 관련된 모든 기능이 트릭스터M에서 동작시키면 아무 응답없음( spy++ 로 확인했을때 아예 이벤트조차 안넘어감 ) - 화상키보드로 클릭시켜서 입력해봤지만 마찬가지로 막힘 - lowlevel 하드웨어 SendInput도 해봤지만 막힘 - 퍼플 앱에 원격이 있어서 그걸 통해서 시도하려고 생각해봤지만 퍼플앱도 다른 에뮬레이..
-
한글 일치율 비교#5. HammingDistance, JaroWinklerDistance 알고리즘 추가c# Winform 개발/글자비교 2021. 6. 23. 14:51
HammingDistance : 글자개수로 비교 JaroWinklerDistance : LevenshteinDistance 와 마찬가지로 편집거리 알고리즘 클래스를 우선추가한후 public static class HammingDistance { public static int GetHammingDistance(string s, string t) { /* if (s.Length != t.Length) { throw new Exception("Strings must be equal length"); } */ int distance = s.ToCharArray() .Zip(t.ToCharArray(), (c1, c2) => new { c1, c2 }) .Count(m => m.c1 != m.c2); retur..
-
한글 일치율 비교#4. 텍스트 비교 및 일치율 추출c# Winform 개발/글자비교 2021. 6. 22. 16:37
items에 있는 데이터는 이런식으로 들어가 있습니다. "ㅅㅓ ㅇㅜㄹㅅㅣ ㄱㅏㅇㄴㅏㅁㄱㅜ ", "서울시강남구|18" 파이프라인( | ) 기준으로 텍스트박스에 보여질(서울시강남구)와 초중종성의 length를 넣었습니다. 초성+중성+종성을 다시 합쳐도 "서울시강남구"가 보여질겁니다. ( 귀찮아서 dictionary에 담음 ) // 주소파일에서 읽어온 데이터 Dictionary items = new Dictionary(); private void button2_Click(object sender, EventArgs e) { if(textBox1.Text.Length < 1) { MessageBox.Show("2글자 이상입력"); textBox1.Focus(); return; } string tb = divid..