def startMacro(self, prog_pos_x, prog_pos_y, prog_size_x, prog_size_y): # 매크로 시작할 때 필요한 작업을 수행하는 함수 try: myMacro.move_mouse(prog_pos_x + prog_size_x / 20, prog_pos_y + prog_size_y / 20) # 메이플 프로그램 화면 좌측 상단으로 마우스 이동 myMacro.click_mouse_left(0, 0) # 메이플 프로그램 화면 좌측 상단 좌클릭 myMacro.keyboardInput( self.macro_pause_restart) # 메이플 매크로 중지 및 재시작 단축키 입력 except Exception, e: self.statusBar.showMessage('[-] Error : ' + str(e)) # 상태 표시줄 내용 갱신
def imageUpload( self, prog_pos_x2, prog_pos_y2, prog_size_x2, prog_size_y2): # 거짓말 탐지기 이미지 내 캡차 스크린샷 파일을 카카오톡(채팅방)에 업로드하는 함수 try: myMacro.move_mouse(prog_pos_x2 + self.kakao_image_open_button_minus_pos_x, prog_pos_y2 + prog_size_y2 - self.kakao_image_open_button_minus_pos_y ) # 카카오톡 채팅방 좌측 하단에 있는 사진 전송 버튼으로 마우스 이동 myMacro.click_mouse_left(0, 0) # 카카오톡 채팅방 좌측 하단에 있는 사진 전송 버튼 좌클릭 pyperclip.copy(self.captcha_screenshot_file ) # 거짓말 탐지기 이미지 내 캡차 스크린샷 파일명(경로 포함) 클립보드에 저장 time.sleep(2) # 업로드할 파일 선택 윈도우가 열릴 때까지 대기 myMacro.keyboardInput_combination( 'ctrl', 'v') # Ctrl + v 입력해서 거짓말 탐지기 이미지 내 캡차 스크린샷 파일명(경로 포함) 입력 myMacro.keyboardInput( 'enter') # enter 입력해서 거짓말 탐지기 이미지 내 캡차 스크린샷 파일 업로드 return True # 업로드에 성공했을 경우의 반환 except Exception, e: self.statusBar.showMessage('[-] Error : ' + str(e)) # 상태 표시줄 내용 갱신 return False # 업로드에 실패했을 경우의 반환
def autoServerStart(first_wait_time, server_file, vmware_name, server_start_wait_time, tomcat8_service_restart, guacd_service_restart): # 서버 구동 함수 time.sleep(first_wait_time) # 로그인 후 안정화 될 때가지 대기 ctypes.windll.shell32.ShellExecuteA(0, 'open', server_file, None, None, 1) # vmware 실행 while True: state, prog_pos_x, prog_pos_y, prog_size_x, prog_size_y = myMacro.get_program_pos_size_include_maximum( vmware_name) # vmware의 위치 및 크기 저장 if state: # vmware의 위치 및 크기를 제대로 찾았을 경우 myMacro.move_mouse(prog_pos_x + prog_size_x / 2, prog_pos_y + prog_size_y / 2) # vmware 화면 중앙으로 마우스 이동 myMacro.click_mouse_left(0, 0) # vmware 화면 중앙 좌클릭 time.sleep(0.1) myMacro.keyboardInput_combination('ctrl', 'b') # 가상머신 구동 단축키 입력 time.sleep(server_start_wait_time) # 서버 켜질 때까지 대기 break while True: state, prog_pos_x, prog_pos_y, prog_size_x, prog_size_y = myMacro.get_program_pos_size_include_maximum( vmware_name) # vmware의 위치 및 크기 저장 if state: # vmware의 위치 및 크기를 제대로 찾았을 경우 myMacro.move_mouse(prog_pos_x + prog_size_x / 2, prog_pos_y + prog_size_y / 2) # vmware 화면 중앙으로 마우스 이동 myMacro.click_mouse_left(0, 0) # vmware 화면 중앙 좌클릭 time.sleep(0.1) # 아이디 입력 myMacro.keyboardInput('r') myMacro.keyboardInput('o') myMacro.keyboardInput('o') myMacro.keyboardInput('t') myMacro.keyboardInput('enter') time.sleep(1.5) # 패스워드 입력 myMacro.keyboardInput('x') myMacro.keyboardInput('x') myMacro.keyboardInput('x') myMacro.keyboardInput('x') myMacro.keyboardInput('x') myMacro.keyboardInput('x') myMacro.keyboardInput('x') myMacro.keyboardInput_combination('shift', '2') myMacro.keyboardInput('enter') time.sleep(5) # 톰캣 서비스 재시작 for c in tomcat8_service_restart: myMacro.keyboardInput(c) myMacro.keyboardInput('enter') time.sleep(10) # 과카몰리 서비스 재시작 for c in guacd_service_restart: myMacro.keyboardInput(c) myMacro.keyboardInput('enter') return
def inputCode(self, code_list, prog_pos_x, prog_pos_y, detected_pos): # 거짓말 탐지기 해제 코드를 입력하는 함수 try: myMacro.move_mouse( prog_pos_x + detected_pos[0] + self.captcha_screenshot_x / 2, prog_pos_y + detected_pos[1] + self.captcha_screenshot_y / 2) # 메이플 화면 내의 거짓말 탐지기 이미지 중앙으로 마우스 이동 myMacro.click_mouse_left(0, 0) # 거짓말 탐지기 이미지 더블 클릭 myMacro.click_mouse_left(0, 0) time.sleep(0.3) # 딜레이 myMacro.input_keyboard( 'hanguel' ) # 한/영 키 입력(거짓말 탐지기의 경우 한글만 나오기 때문에 영어로 키가 설정돼 있어야 함(디폴트 영어)) time.sleep(0.3) # 딜레이 for i in range( 0, len(code_list)): # 거짓말 탐지기 해제 코드의 초성, 중성, 종성의 개수만큼 반복 input_key = '' # 입력할 키 저장 변수 if code_list[i] == u'ㅂ': # 해당 문자일 경우 input_key = 'q' # 입력할 키 저장 elif code_list[i] == u'ㅃ': # 쌍자음, 쌍모음일 경우 input_key = 'q' # 입력할 키 저장 myMacro.keyboardInput_combination( 'shift', input_key) # Shift + input_key 입력 continue elif code_list[i] == u'ㅈ': input_key = 'w' elif code_list[i] == u'ㅉ': input_key = 'w' myMacro.keyboardInput_combination('shift', input_key) continue elif code_list[i] == u'ㄷ': input_key = 'e' elif code_list[i] == u'ㄸ': input_key = 'e' myMacro.keyboardInput_combination('shift', input_key) continue elif code_list[i] == u'ㄱ': input_key = 'r' elif code_list[i] == u'ㄲ': input_key = 'r' myMacro.keyboardInput_combination('shift', input_key) continue elif code_list[i] == u'ㅅ': input_key = 't' elif code_list[i] == u'ㅆ': input_key = 't' myMacro.keyboardInput_combination('shift', input_key) continue elif code_list[i] == u'ㅛ': input_key = 'y' elif code_list[i] == u'ㅕ': input_key = 'u' elif code_list[i] == u'ㅑ': input_key = 'i' elif code_list[i] == u'ㅐ': input_key = 'o' elif code_list[i] == u'ㅒ': input_key = 'o' myMacro.keyboardInput_combination('shift', input_key) continue elif code_list[i] == u'ㅔ': input_key = 'p' elif code_list[i] == u'ㅖ': input_key = 'p' myMacro.keyboardInput_combination('shift', input_key) continue elif code_list[i] == u'ㅁ': input_key = 'a' elif code_list[i] == u'ㄴ': input_key = 's' elif code_list[i] == u'ㅇ': input_key = 'd' elif code_list[i] == u'ㄹ': input_key = 'f' elif code_list[i] == u'ㅎ': input_key = 'g' elif code_list[i] == u'ㅗ': input_key = 'h' elif code_list[i] == u'ㅓ': input_key = 'j' elif code_list[i] == u'ㅏ': input_key = 'k' elif code_list[i] == u'ㅣ': input_key = 'l' elif code_list[i] == u'ㅋ': input_key = 'z' elif code_list[i] == u'ㅌ': input_key = 'x' elif code_list[i] == u'ㅊ': input_key = 'c' elif code_list[i] == u'ㅍ': input_key = 'v' elif code_list[i] == u'ㅠ': input_key = 'b' elif code_list[i] == u'ㅜ': input_key = 'n' elif code_list[i] == u'ㅡ': input_key = 'm' myMacro.keyboardInput(input_key) # 키 입력 time.sleep(0.1) # 딜레이 myMacro.input_keyboard('hanguel') # 영어로 키를 초기화 하기 위해 한/영 키 입력 time.sleep(0.1) # 딜레이 myMacro.keyboardInput('enter') # 거짓말 탐지기 해제 코드 입력 후 마지막으로 엔터 입력 time.sleep(2) # 거짓말 탐지기 해제 후 나오는 창이 나올 때까지 대기 myMacro.keyboardInput('enter') # 거짓말 탐지기 해제 후 나오는 창을 닫기 위해 엔터 입력 except Exception, e: self.statusBar.showMessage('[-] Error : ' + str(e)) # 상태 표시줄 내용 갱신
def stopMacro(self): # 매크로 중지할 때 필요한 작업을 수행하는 함수 try: myMacro.keyboardInput( self.macro_pause_restart) # 메이플 매크로 중지 및 재시작 단축키 입력 except Exception, e: self.statusBar.showMessage('[-] Error : ' + str(e)) # 상태 표시줄 내용 갱신