Python을 사용한 마우스 및 키보드 자동화

Python을 사용한 마우스 및 키보드 자동화

이 문서에서는 다음을 사용하여 마우스와 키보드의 움직임을 자동화하는 방법을 설명합니다. 피오토구이 파이썬의 모듈. 이 모듈에는 Python이 사전 로드되어 있지 않습니다. 따라서 설치하려면 다음 명령을 실행하십시오. 
 

 pip3 install pyautogui 


 

pyautogui 모듈을 사용하여 마우스 움직임 제어


Python은 화면의 좌표계를 사용하여 마우스를 추적하고 제어합니다. 화면의 해상도가 1920X1080이라고 가정하면 화면의 좌표계는 다음과 같습니다. 
 

파이썬의 GUI


 

    크기(): 이 함수는 화면 해상도를 얻는 데 사용됩니다.
     
Python
   import   pyautogui   print  (  pyautogui  .  size  ())   


이 파일을 .py 확장자로 저장한 다음 파일을 실행하세요. 
이 Python 코드는 size() 함수를 사용하여 화면 해상도를 x y 형식으로 출력합니다. 
산출: 
 

 (1920 1080) 


참고: geeksforgeeks IDE에는 이러한 코드를 실행하는 데 필요한 모듈이 없기 때문에 이 기사에 제공된 코드 중 일부는 geeksforgeeks IDE에서 실행되지 않을 수 있습니다. 그러나 이러한 코드는 Python을 설치하고 기사에 제공된 지침을 따르면 PC에서 로컬로 쉽게 실행할 수 있습니다. 
 

    이동(): pyautogui 모듈에서 마우스를 이동하려면 이 기능을 사용하십시오. 
     
Python
   import   pyautogui   pyautogui  .  moveTo  (  100     100     duration   =   1  )   


이 코드는 x 및 y 좌표와 선택적 기간 인수를 사용하는 moveTo() 함수를 사용합니다. 이 함수는 마우스 포인터를 현재 위치에서 x y 좌표로 이동하고 이를 수행하는 데 지속 시간 인수에 지정된 시간이 걸립니다. 이 Python 스크립트를 저장하고 실행하면 마우스 포인터가 마법처럼 현재 위치에서 좌표(100 100)로 이동하는 과정에서 1초가 걸리는 것을 볼 수 있습니다. 
 

    moveRel() 함수: 이전 위치를 기준으로 마우스 포인터를 이동합니다. 
     
Python
   import   pyautogui   pyautogui  .  moveRel  (  0     50     duration   =   1  )   


이 코드는 원래 위치를 기준으로 마우스 포인터를 (0 50)으로 이동합니다. 예를 들어 코드를 실행하기 전 마우스 위치가 (1000 1000)이었다면 이 코드는 1초 동안 포인터를 좌표(1000 1050)로 이동합니다. 
 

    위치(): 마우스 포인터의 현재 위치를 가져오는 함수입니다. 
     
Python
   import   pyautogui   print  (  pyautogui  .  position  ())   


출력: 프로그램 실행 시 마우스가 있던 위치를 좌표로 표시합니다. 
 

    딸깍 하는 소리(): 마우스를 클릭하고 드래그하는 데 사용되는 기능입니다. 
     
Python
   import   pyautogui   pyautogui  .  click  (  100     100  )   


이 코드는 위치(100 100)에서 일반적인 마우스 클릭을 수행합니다. 
마우스 드래그 작업과 관련된 두 가지 기능이 있습니다. dragTo 및 dragRel . 이동하는 동안 마우스 왼쪽 버튼을 누르고 드래그를 시작한다는 점을 제외하면 moveTo 및 moveRel 기능과 유사하게 수행됩니다. 
이 기능은 대화 상자를 이동하거나 MS 그림판의 연필 도구를 사용하여 자동으로 무언가를 그리는 등 다양한 위치에서 사용할 수 있습니다. 페인트로 사각형을 그리려면: 
 

Python
   import   time   # a module which has functions related to time.    # It can be installed using cmd command:    # pip install time in the same way as pyautogui.   import   pyautogui   time  .  sleep  (  10  )   # makes program execution pause for 10 sec   pyautogui  .  moveTo  (  1000     1000     duration   =   1  )   # moves mouse to 1000 1000.   pyautogui  .  dragRel  (  100     0     duration   =   1  )   # drags mouse 100 0 relative to its previous position    # thus dragging it to 1100 1000   pyautogui  .  dragRel  (  0     100     duration   =   1  )   pyautogui  .  dragRel  (  -  100     0     duration   =   1  )   pyautogui  .  dragRel  (  0     -  100     duration   =   1  )   


코드를 실행하기 전에 선택한 연필 도구를 사용하여 백그라운드에서 MS Paint를 엽니다. 이제 코드를 실행하면 10초 전에 MS 페인트로 빠르게 전환됩니다(프로그램을 실행하기 전에 sleep() 함수를 사용하여 10초의 일시 중지 시간을 제공했기 때문입니다). 
10초 후에는 왼쪽 상단 가장자리가 1000 1000이고 가장자리 길이가 100픽셀인 정사각형이 MS 페인트로 그려지는 것을 볼 수 있습니다.

    스크롤(): 스크롤 기능은 아니오를 취합니다. 인수로 픽셀 수를 지정하고 주어진 픽셀 수까지 화면을 스크롤합니다.
     
Python
   import   pyautogui   pyautogui  .  scroll  (  200  )   


이 코드는 활성 화면을 최대 200픽셀까지 스크롤합니다. 
 

    타자기(): typewrite() 함수를 사용하여 문자열 입력을 자동화할 수 있습니다. 이 함수의 인수로 입력하려는 문자열을 전달하면 됩니다. 
     
Python
   import   pyautogui   pyautogui  .  click  (  100     100  )   pyautogui  .  typewrite  (  'hello Geeks !'  )   


화면의 좌표 100 100에 텍스트 필드가 있다고 가정하면 이 코드는 텍스트 필드를 클릭하여 활성화하고 hello Geeks!를 입력합니다. 그 안에. 
 

    키 이름 전달: typewrite() 함수를 통해 키 이름을 별도로 전달할 수 있습니다. 
     
Python
   import   pyautogui   pyautogui  .  typewrite  ([  'a'     'left'     'ctrlleft'  ])   


이 코드는 왼쪽 화살표 키를 누른 채 'a'를 입력하고 왼쪽 컨트롤 키를 누르는 것과 자동으로 동일합니다. 
 

    단축키 조합 누르기: ctrl-c ctrl-a 등과 같은 키 조합을 누르려면 hotkey() 기능을 사용하십시오.
     
Python
   import   pyautogui   pyautogui  .  hotkey  (  'ctrlleft'     'a'  )   


이 코드는 왼쪽 Ctrl과 'a'를 동시에 누르는 것과 자동으로 동일합니다. 따라서 창에서는 화면에 있는 모든 텍스트가 선택됩니다.

예:

WhatsApp에서 메시지를 보내고 모든 사람에게 자동으로 삭제합니다. 이를 실행하려면 Chrome에서 Whatsapp을 이미 열어야 합니다. 이 코드를 실행한 후 Chrome에서 WhatsApp 탭을 엽니다.

Python3
   import   pyautogui   as   pg   import   time   def   delete_for_everyone  ():   pg  .  click  (  807     979  )   pg  .  typewrite  (  'hello'  )   pg  .  typewrite  ([  'enter'  ])   time  .  sleep  (  2  )   pg  .  click  (  1621     896  )   pg  .  click  (  1621     896  )   # time.sleep(1)   pg  .  click  (  1693     859  )   # time.sleep(1)   pg  .  click  (  1014     669  )   # time.sleep(1)   pg  .  click  (  1111     605  )   a  =  20   time  .  sleep  (  10  )   while  (  a  !=  0  ):   delete_for_everyone  ()   a  =  a  -  1   

 

퀴즈 만들기