Automatizace myši a klávesnice pomocí Pythonu

Automatizace myši a klávesnice pomocí Pythonu

Tento článek ukazuje, jak automatizovat pohyby myši a klávesnice pomocí pyautogui modul v pythonu. Tento modul není předinstalovaný s pythonem. Chcete-li jej nainstalovat, spusťte následující příkaz: 
 

 pip3 install pyautogui 


 

Ovládání pohybů myši pomocí modulu pyautogui


Python sleduje a ovládá myš pomocí souřadnicového systému obrazovky. Předpokládejme, že rozlišení vaší obrazovky je 1920X1080, pak souřadnicový systém obrazovky vypadá takto: 
 

gui v pythonu


 

    velikost(): Tato funkce se používá k získání rozlišení obrazovky.
     
Python
   import   pyautogui   print  (  pyautogui  .  size  ())   


Uložte tento soubor s příponou .py a poté soubor spusťte. 
Tento kód pythonu používá funkci size() k výstupu rozlišení obrazovky ve formátu x y: 
výstup: 
 

 (1920 1080) 


Poznámka: Některé kódy uvedené v tomto článku nemusí fungovat na geeksforgeeks IDE, protože geeksforgeeks IDE nemá potřebné moduly pro spouštění těchto kódů. Tyto kódy však lze snadno spustit lokálně na vašem PC instalací pythonu a podle pokynů uvedených v článku. 
 

    moveTo(): použijte tuto funkci k pohybu myši v modulu pyautogui. 
     
Python
   import   pyautogui   pyautogui  .  moveTo  (  100     100     duration   =   1  )   


Tento kód používá funkci moveTo(), která přebírá souřadnice x a y a volitelný argument trvání. Tato funkce přesune ukazatel myši z jeho aktuálního umístění na souřadnici x y a trvá to určitou dobu, jak je zadáno argumentem trvání. Uložte a spusťte tento python skript, abyste viděli, jak se kurzor myši magicky pohybuje z aktuální polohy na souřadnice (100 100), přičemž tento proces trvá 1 sekundu. 
 

    funkce moveRel(): přesune ukazatel myši vzhledem k jeho předchozí pozici. 
     
Python
   import   pyautogui   pyautogui  .  moveRel  (  0     50     duration   =   1  )   


Tento kód přesune ukazatel myši na (0 50) vzhledem k jeho původní pozici. Například pokud pozice myši před spuštěním kódu byla (1000 1000), pak tento kód přesune ukazatel na souřadnice (1000 1050) po dobu 1 sekundy. 
 

    pozice(): funkce pro získání aktuální polohy ukazatele myši. 
     
Python
   import   pyautogui   print  (  pyautogui  .  position  ())   


Výstup: souřadnice, kde se myš nacházela v době provádění programu. 
 

    klikni(): Funkce používaná pro klikání a tažení myší. 
     
Python
   import   pyautogui   pyautogui  .  click  (  100     100  )   


Tento kód provede typické kliknutí myší na místo (100 100). 
S tažením myši máme spojeny dvě funkce dragTo a dragRel . Provádějí podobné funkce jako moveTo a moveRel s tím rozdílem, že při pohybu drží levé tlačítko myši, čímž spouští tažení. 
Tuto funkci lze použít na různých místech, jako je přesouvání dialogového okna nebo automatické kreslení něčeho pomocí nástroje tužka v programu MS Paint. Chcete-li nakreslit čtverec barvou: 
 

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  )   


Před spuštěním kódu otevřete MS Paint na pozadí s vybraným nástrojem tužka. Nyní spusťte kód a rychle přepněte na MS Paint před 10 sekundami (protože jsme před spuštěním programu dali 10 sekundovou pauzu pomocí funkce sleep()). 
Po 10 sekundách uvidíte čtverec nakreslený v MS Paint s levým horním okrajem 1000 1000 a délkou hrany 100 pixelů.

    svitek(): funkce rolování trvá ne. pixelů jako argument a posouvá obrazovku až na daný počet pixelů.
     
Python
   import   pyautogui   pyautogui  .  scroll  (  200  )   


Tento kód posouvá aktivní obrazovku až o 200 pixelů. 
 

    psát na psacím stroji(): Psaní řetězce můžete automatizovat pomocí funkce typewrite(). stačí předat řetězec, který chcete zadat jako argument této funkce. 
     
Python
   import   pyautogui   pyautogui  .  click  (  100     100  )   pyautogui  .  typewrite  (  'hello Geeks !'  )   


Předpokládejme, že textové pole bylo přítomno na souřadnicích 100 100 na obrazovce, pak tento kód klikne na textové pole, aby bylo aktivní, a napíše hello Geeks! v něm. 
 

    Předávání klíčových jmen: Názvy klíčů můžete předat samostatně pomocí funkce typewrite(). 
     
Python
   import   pyautogui   pyautogui  .  typewrite  ([  'a'     'left'     'ctrlleft'  ])   


Tento kód je automatickým ekvivalentem psaní „a“ stisknutím levé šipky a stisknutím levého ovládacího tlačítka. 
 

    Kombinace klávesových zkratek: Pomocí funkce hotkey() stiskněte kombinaci kláves jako ctrl-c ctrl-a atd.
     
Python
   import   pyautogui   pyautogui  .  hotkey  (  'ctrlleft'     'a'  )   


Tento kód je automatickým ekvivalentem současného stisknutí levého ctrl a 'a'. V oknech to tedy povede k výběru veškerého textu na obrazovce.

Příklad:

Chcete-li odeslat zprávu v WhatsApp a automaticky ji smazat pro všechny. Chcete-li to spustit, musíte mít Whatsapp již otevřený v prohlížeči Chrome. Po spuštění tohoto kódu otevřete kartu WhatsApp v prohlížeči Chrome.

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   

 

Vytvořit kvíz