2017-05-03 2 views
0

Pour une raison quelconque, l'écran devient noir après le deuxième ou le troisième mouvement de la souris. La première est la fonction i utiliser pour déplacer la souris:win32api et python amenant mon écran à devenir noir quand il déplace la souris

import ctypes 
import time 

SendInput = ctypes.windll.user32.SendInput 


def MoveMouse(x, y): 
    extra = ctypes.c_ulong(0) 
    ii_ = Input_I() 
    x = int(x*(65536/ctypes.windll.user32.GetSystemMetrics(0))+1) 
    y = int(y*(65536/ctypes.windll.user32.GetSystemMetrics(1))+1) 
    ii_.mi = MouseInput(x, y, 0, 0x0001 | 0x8000, 1, ctypes.pointer(extra)) 
    x = Input(ctypes.c_ulong(0), ii_) 
    ctypes.windll.user32.SendInput(1, ctypes.pointer(x), ctypes.sizeof(x)) 

cela provoque l'écran à noircir

import numpy as np 
from PIL import ImageGrab 
import cv2 
import time 
import win32api, win32con 
from directkeys import PressKey,ReleaseKey, W, A, S, D, MoveMouse 
from grabscreen import grab_screen 
x_pad = 0 
y_pad = 0 
def left(): 
    PressKey(W) 
    PressKey(A) 
    #ReleaseKey(W) 
    ReleaseKey(D) 
    #ReleaseKey(A) 
    time.sleep(.9) 
    ReleaseKey(A) 
def leftClick(): 
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0) 
    time.sleep(.1) 
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0) 
    print ("Click.") 
def mousePos(cord): 
    win32api.SetCursorPos((x_pad + cord[0], y_pad + cord[1])) 
def screen_record(): 
    last_time = time.time() 
    while(True): 
     # 800x600 windowed mode for GTA 5, at the top left position of your main screen. 
     # 40 px accounts for title bar. 
     printscreen = grab_screen(region=(0,40,800,640)) 
     #rgb_im = printscreen.convert('RGB') 
     pixels =int(printscreen[300, 300, 0]) 
     print(pixels) 
     #r, g, b = printscreen.getpixel((551, 350)) 
     if pixels == 255: 
      #if r == 127and g == 26 and b == 25: 
      x, y = win32api.GetCursorPos() 
      #x += 44 
      time.sleep(1) 
      MoveMouse(x, y) 
      time.sleep(1) 
# 


     #print (r, g, b) 
screen_record() 

Merci toute aide serait appréciée. Pour résumer, j'ai besoin d'aide pour déterminer pourquoi la fonction Déplacer la souris fait noircir tout mon écran de bureau jusqu'à ce que la fonction ne soit plus utilisée.

+0

Je devrais mentionner c'est un problème similaire à celui-ci: http://stackoverflow.com/questions/27674827/python-mouse-movement-emulation-in-games/29956868#29956868 J'essaie pour l'exécuter dans un jeu vidéo. mais il ne fonctionne pas non plus lorsque je l'utilise sur le bureau seul. pyautogui ne fonctionnera pas. Je suis en python 3.5 et windows 10 – Daveyman123

Répondre

1

eu le même problème, essayez de changer dans:

ii_.mi = MouseInput(x, y, 0, 0x0001 | 0x8000, 1, ctypes.pointer(extra)) 

le cinquième paramètre (IE "1") à 0, il ressemble à ceci:

ii_.mi = MouseInput(x, y, 0, 0x0001 | 0x8000, 0, ctypes.pointer(extra)) 

a marché pour moi. .. Bonne chance