pyautogui findet screenshot nicht

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
S0S
User
Beiträge: 50
Registriert: Samstag 9. Februar 2013, 18:59

Hallo,

ich habe ein bisschen herumprobiert, wie man mit pyautogui Programme "fernsteuern" kann. Die ganze Zeit über hat das auch super funktioniert, aber jetzt bin ich an einem anderen Computer (selbes Betriebssystem, andere Bildschirmauflösung), und obwohl ich genauso vorgehe wie zuvor, funktioniert es einfach nicht mehr.

Was ich machen möchte, ist das Snipping Tool von Win 10 zu öffnen und einen neuen Screenshot erstellen. Das ist mein Code:

Code: Alles auswählen

import subprocess
import pyautogui
import time
#from PIL import Image

def find_click(button):
    not_open = True
    while not_open:
        try:
            button_name = "Screenshots\{}.png".format(button)
##            im = Image.open(button_name)
##            im.show()
            button_location = pyautogui.locateOnScreen(button_name)
            x,y = pyautogui.center(button_location)
            pyautogui.click(x,y)
            not_open = False
            print "Found", button
        except:
            print "Looking for", button
            pyautogui.moveRel(1,0)
            not_open = True
        time.sleep(1)
        
pyautogui.hotkey("win", "r")
pyautogui.typewrite("SnippingTool.exe")
pyautogui.press("enter")

find_click("Neu")
Das Snipping Tool wird auch korrekt geöffnet, den Button "Neu" findet das Programm jedoch offensichtlich nicht. Ich habe das entsprechende Bild am selben Computer (über die Druck-Taste und Paint) aufgenommen und auch im richtigen Ordner gespeichert (durch die auskommentierten Zeilen wird es angezeigt). Auch die Bildschirmhelligkeit o.ä. habe ich nicht verändert. "greyscale = True" hatte ich bereits eingefügt, aber auch dann findet das Programm nicht das Bild?

Weiß jemand, woran das liegen kann?
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Keine Ahnung. Habe kein Windows :D

wie ist denn der Wert für

Code: Alles auswählen

pyautogui.FAILSAFE = False
S0S
User
Beiträge: 50
Registriert: Samstag 9. Februar 2013, 18:59

Was meinst du mit dem Wert dafür? Ich habe diese Zeile in meinen Code eingefügt, das ändert nichts.
S0S
User
Beiträge: 50
Registriert: Samstag 9. Februar 2013, 18:59

Das Problem ließ sich dadurch lösen, dass ich IDLE als Administrator starte, da das Programm vorher offenbar nicht die Berechtigung hatte, auf die Maus zuzugreifen. Trotzdem komisch, dass es auf dem anderen PC auch so funktioniert hat...
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Tja, hättest du mal The GIMP genommen, dann wäre das einfacher ;) Für das kannst du Skripte in Python schreiben. Das kann natürlich auch Screenshots erzeugen.
BlackJack

@S0S: Warum machst Du Bildschirmfotos nicht mit PyAutoGUI selbst? Das hat Screenshot Functions.
S0S
User
Beiträge: 50
Registriert: Samstag 9. Februar 2013, 18:59

Wenn ich direkt mit pyautogui einen Screenshot von einem Teil des Bildschirms erzeugen will, muss ich - wenn ich das richtig verstanden habe - die Koordinaten angeben, kann also nicht einfach grafisch über den entsprechenden Bereich ziehen. Wie das mit GIMP geht, werde ich mal schauen.

Außerdem wollte ich halt einfach ausprobieren, wie man Programme mittels pyautogui steuern kann, da man das ja - wenn es dann mal funktioniert - für so ziemlich alles verwenden kann.
Antworten