setPixel

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.
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

nitram0598 hat geschrieben:wie genau baut man die keyrelease ein
Mit:

Code: Alles auswählen

hooks_manager.KeyUp = KeyReleaseEvent
Gruss wuf :wink:
Take it easy Mates!
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hier noch etwas zum herumspielen:

Code: Alles auswählen

import pyHook as hm
import pythoncom

class KeyEvent(object):

    def __init__(self):
        self.toggle = False
                
    def key_press(self, event):
        if event.Key == 'Escape':
            exit()
            
        if not self.toggle:
            self.toggle = True
            print('Toggle = Ein')
            
        return True
        
    def key_release(self, event):
        if self.toggle:
            self.toggle = False
            print('Toggle = Aus')
            
        return True
   
if __name__ == '__main__':
    key_event = KeyEvent()
    pyhook = hm.HookManager()
    pyhook.KeyDown = key_event.key_press
    pyhook.KeyUp = key_event.key_release
    pyhook.HookKeyboard()
    pythoncom.PumpMessages()
wuf :wink:
Take it easy Mates!
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Mein Code:

Code: Alles auswählen

hwnd = win32gui.GetForegroundWindow()
window_dc = win32gui.GetWindowDC(hwnd)
win32gui.SetPixel(window_dc, px, py, 255)
Fehlercode:

Code: Alles auswählen

Exception in thread Thread-1:
Traceback (most recent call last):
  File "C:\Users\Philipp\AppData\Local\Programs\Python\Python35\lib\threading.py", line 914, in _bootstrap_inner
    self.run()
  File "C:\Users\Philipp\Desktop\Python\ModMenu - Consoles\Tool.py", line 75, in run
    win32gui.SetPixel(window_dc, px, py, 255)
pywintypes.error: (0, 'SetPixel', 'No error message is available')
Schon witzig dieser Fehlercode. Hat da jemand eine Ahnung / Erfahrung warum dieser Fehler kommt?

Ich habe danach gegoogelt und fand nur Codes, wie hier, die wie meine sind, aber bei anderen scheints zu funktionieren, nur bei mir nicht. ^^
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

Threading und Systemaufrufe vertragen sich oft nicht. Wie sieht denn der ganze Code aus?
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Hat sich erledigt. ^^ Es stimmte was mit "px" & "py" nicht, ging glaube über die maximale Größe hinaus.
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Jemand 'ne Idee warum bei mir "SetPixel(hdc, x, y, color)" funktioniert, aber mein Programmtester folgenden Fehler bekommt? :

Code: Alles auswählen

<6, 'SetPixel', 'controlador no valido.'>

Alle Funktionsparameter stimmen, denn bei mir funktioniert es. Auch habe ich ein mini Skript geschrieben, dass er ausführen sollte, um zu schauen, ob win32gui und dessen Funktion "SetPixel()" bei ihm überhaupt funktionieren kann und das tut es.
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Das Problem ist, dass man online nichts findet...nicht Mal eine Dokumentation, was diese '6' im Fehlercode bedeutet.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

Zehn Sekunden Suche, und Du hast die Fehlermeldung, dessen Spanische Übersetzung "controlador no valido." ist: ERROR_INVALID_HANDLE
Oder auf deutsch: das Devicehandle window_dc ist ungültig.
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Bei mir hat es "Controller nicht gültig" übersetzt, deswegen wusste ich damit nichts anzufangen. ^^
Aber danke dir! :3
Antworten