2017-07-25 9 views
0

J'ai un script python qui fonctionne parfaitement sur mon ordinateur de travail (résolution 1600 x 900). C'est sur cet ordinateur que j'ai pris toutes les captures d'écran utilisées par pyautogui.locateOnScreen. J'ai essayé d'exécuter ce programme sur mon ordinateur portable à la maison avec une résolution différente (1340 x 640) et le script ne semble pas trouver l'emplacement de l'image. Je devine que c'est à cause de la résolution différente. (J'ai copié le dossier de script de mon ordinateur de travail à l'ordinateur à la maison, de sorte que le chemin vers le fichier d'image est exactement le même). Y at-il quelque chose que je peux changer dans mon script afin que pyautogui.locateOnScreen identifie l'image sur n'importe quelle résolution d'ordinateur?Exécution de Pyautogui sur un autre ordinateur avec une résolution différente

+0

Merci pour cette réponse. Je pensais aussi dans ce sens, mais cela me limiterait aux deux ordinateurs à partir desquels l'image a été prise. J'espérais une solution dans laquelle le script peut être porté sur n'importe quelle machine, et il détermine automatiquement la résolution et applique en quelque sorte un facteur à ... (commençant à sembler stupide). Je pense que ma meilleure option serait un script différent qui prend des captures d'écran de régions spécifiques de l'écran, et les enregistre comme les images requises par le premier script. – Ngula

Répondre

0

Je pense que vous aurez besoin de prendre une capture d'écran de l'image sur la résolution différente, et au début de votre programme, il détectera si c'est sur l'écran 1600x900 ou l'écran 1340x640. Ensuite, faites en sorte que toutes les pièces 'locateOnScreen' prennent une variable, et en fonction de la taille de l'écran, remplacez ces variables par le chemin vers l'image correcte.

import pyautogui 

def function(): 
    pyautogui.locateOnScreen(x) 
    ... 
    pyautogui.locateOnScreen(y) 
    ... 

screen = pyautogui.size() 
if screen = (1600, 900): 
    x = 'image1_1600_900.png' 
    y = 'image2_1600_900.png' 
else: 
    x = 'image1_1340_640.png' 
    y = 'image2_1340_640.png' 

function()