Example #1
0
 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))  # 상태 표시줄 내용 갱신
Example #2
0
 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  # 업로드에 실패했을 경우의 반환
Example #3
0
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
Example #4
0
 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))  # 상태 표시줄 내용 갱신
Example #5
0
 def stopMacro(self):  # 매크로 중지할 때 필요한 작업을 수행하는 함수
     try:
         myMacro.keyboardInput(
             self.macro_pause_restart)  # 메이플 매크로 중지 및 재시작 단축키 입력
     except Exception, e:
         self.statusBar.showMessage('[-] Error : ' + str(e))  # 상태 표시줄 내용 갱신