Domanda Help su funzione pressione tasto

Stato
Discussione chiusa ad ulteriori risposte.

TheDarkFenix

Utente Emerald
24 Maggio 2013
695
41
276
378
Come da titolo mi piacerebbe sapere in python come scrivo un codice che mi permetta di simulare la pressione di un tasto della tastiera

es
premo tasto avvia
delay 50
pressione tasto 5
delay 50
ecc..
 
ho un mutitool x il client di metin2 scritto in python... dovrei inserire un tasto dove dopo averlo premuto mi parte una serie di tasti
tipo
premo il tasto
e lui mi simula la pressione del tasto 1 della tastiera
 
@examinedcastle
raw_input è valido fino ad una certa versione di python.
raw_input/input non simulano in alcun modo la pressione di tasti.

@TheDarkFenix

Se ti trovi su window puoi utilizzare i seguenti moduli
Codice:
import win32api
import win32con

Consiglio personale:
Se devi simulare la pressione di tasti utilizza linguaggi più prestanti (vedi autoit)
Se stai lavorando con metin, hai la fortuna di poter utilizzare direttamente le funzioni, senza simulare in alcun modo la pressione di tasti.
 
@examinedcastle
raw_input è valido fino ad una certa versione di python.
raw_input/input non simulano in alcun modo la pressione di tasti.

@TheDarkFenix

Se ti trovi su window puoi utilizzare i seguenti moduli
Codice:
import win32api
import win32con

Consiglio personale:
Se devi simulare la pressione di tasti utilizza linguaggi più prestanti (vedi autoit)
Se stai lavorando con metin, hai la fortuna di poter utilizzare direttamente le funzioni, senza simulare in alcun modo la pressione di tasti.
Pensavo non dovesse simulare la pressione dei tasti. Non avevo capito che doveva creare una specie di bot
 
Qui il problema non sta in "raw_input" o "input", ma nel fatto che comunque nessuna di queste built-in risolve il problema inziale.
Il problema è risolto utilizzando ad esempio le API Windows, quindi con il metodo descritto da luzzi.

Tornando al discorso di prima, se proprio vogliamo essere precisi in python 2.7.x abbiamo sia raw_input (usato per dire al nostro script "tu immagazzina questo, non ti interessa cos'è", tanto che abbiamo anche le raw strings
Codice:
r'"raw strings /n"
diciamo che questa è la stessa cosa dell'input, infatti lo script ritornerà anche "/n" in quanto non verrà inteso come newline) che input(), ma cambia la loro funzione, mentre nella 3a versione troviamo input come sostituto di raw_input.

Se proprio si vuole usare input(), tanto vale dare utilizzare la funzione che troviamo in python 3.x con
Codice:
from __future__ import print_function
ed evitare ulteriori problemi.
 
Sbagliato. Sono cose differenti.
raw_input() non esiste in python 3.x ... input() sì ... E la differenza è che raw_input() restituisce una stringa, mentre input() tenta di eseguire l'input come una espressione python.
Se proprio si vuole usare input(), tanto vale dare utilizzare la funzione che troviamo in python 3.x con
Codice:
from __future__ import print_function
ed evitare ulteriori problemi.
Che c'entra?
 
Infatti ho detto che raw_input è sostituito da input in python, quindi non esiste.

La libreria future ti permette di implementare funzioni di py3 in script scritti in py2.
 
Infatti ho detto che raw_input è sostituito da input in python, quindi non esiste.
La libreria future ti permette di implementare funzioni di py3 in script scritti in py2.
Implementare funzioni obsolete non è sempre una buona idea ... Magari ci sono delle motivazioni se sono state tolte quelle funzioni.
E' sempre sconsigliato.
 
Stato
Discussione chiusa ad ulteriori risposte.