2014-11-29 5 views
8

Ho un clic bot per un gioco e non lo uso da un po '. L'ho installato nuovo (forse c'era una nuova versione) e il mio bot non funziona più. Sembra che l'evento sia in qualche modo bloccato quando il gioco è attivato.Il programma impedisce il movimento del mouse

ho attivare il gioco, con questo:

shell=win32com.client.Dispatch("Wscript.Shell") 
success = shell.AppActivate("Game) 

Ho provato 2 metodi per spostare il mouse:

win32api.SetCursorPos((x,y)) 

che mi dà questo errore.

pywintypes.error: (0, 'SetCursorPos', 'No error message is available') 

L'altro metodo è:

nx = int(x*65535/win32api.GetSystemMetrics(0)) 
ny = int(y*65535/win32api.GetSystemMetrics(1)) 
win32api.mouse_event(win32con.MOUSEEVENTF_ABSOLUTE|win32con.MOUSEEVENTF_MOVE,nx,ny) 

che non funziona e non mi dà un messaggio di errore.

Quando la finestra di gioco non è attivata, il cursore si sposta senza problemi.

Qualcuno sa una soluzione alternativa per questo?

Edit: Sto usando Microsoft Windows 8.1

+1

Forse il gioco utilizza DirectX? SetCursorPos non funzionerebbe quindi, si potrebbe provare invece 'SendInput'. – Phillip

+0

Quindi, il gioco potrebbe essere passato a utilizzare DirectX con un aggiornamento? Lo guarderò oltre, quando sarò a casa. Conoscete un pacchetto python che fornisce questa funzionalità SendInput? Una rapida ricerca su google fa sembrare un po 'complicato utilizzare SendInput. –

+0

Puoi fare un esempio, @Phillip? –

risposta

4

ho provato ctypes e che funziona:

ctypes.windll.user32.SetCursorPos(x, y) 
1

di non gravi vecchie discussioni di scavo, ma mi sono imbattuto in questo. Prova a eseguire il tuo script come admin, quindi se stai eseguendo in CMD assicurati di aprirlo come amministratore. Ha funzionato per me, molto semplice. Stavo usando Python e Windows 10.

+0

Vuoi avere qualche informazione in più? Come la versione di Python che stai utilizzando, e perché devi essere un amministratore per eseguire un programma utente standard (forse qualche consiglio di configurazione a livello di sistema)? Saluti- –