Code ASCII Des touches

Fermé
Forceseek Messages postés 321 Date d'inscription samedi 24 septembre 2011 Statut Membre Dernière intervention 22 janvier 2015 - 27 déc. 2012 à 17:42
heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 - 28 déc. 2012 à 02:30
Bonjour, je suis en train de programmer un Scripteur (Programme qui simule un appui de touche en suivant un micro-langage de programmation que j'ai crée).
Voici mon code :


from ctypes import * #Import du KeyBinder
import time #Import pour module pause avant execution
def keyBinderUse(repeater, userString, timeBeforeExecution, userWhile, userEntry):
repeater -= 1
endWhile = 0
userStringLen = len(userString)
keyWhileSav = userStringLen
inc = 0
KeyList = []
while (userStringLen != 0):
if userString[inc] == "à":
KeyList.append(48)
if userString[inc] == "&":
KeyList.append(49)
if userString[inc] == "é":
KeyList.append(50)
if userString[inc] == '"':
KeyList.append(51)
if userString[inc] == "'":
KeyList.append(52)
if userString[inc] == "(":
KeyList.append(53)
if userString[inc] == "-":
KeyList.append(54)
if userString[inc] == "_":
KeyList.append(56)
if userString[inc] == "ç":
KeyList.append(57)
if userString[inc] == " ":
KeyList.append(32)
if userString[inc] == "a":
KeyList.append(65)
if userString[inc] == "b":
KeyList.append(66)
if userString[inc] == "c":
KeyList.append(67)
if userString[inc] == "d":
KeyList.append(68)
if userString[inc] == "e":
KeyList.append(69)
if userString[inc] == "f":
KeyList.append(70)
if userString[inc] == "g":
KeyList.append(71)
if userString[inc] == "h":
KeyList.append(72)
if userString[inc] == "i":
KeyList.append(73)
if userString[inc] == "j":
KeyList.append(74)
if userString[inc] == "k":
KeyList.append(75)
if userString[inc] == "l":
KeyList.append(76)
if userString[inc] == "m":
KeyList.append(77)
if userString[inc] == "n":
KeyList.append(78)
if userString[inc] == "o":
KeyList.append(79)
if userString[inc] == "p":
KeyList.append(80)
if userString[inc] == "q":
KeyList.append(81)
if userString[inc] == "r":
KeyList.append(82)
if userString[inc] == "s":
KeyList.append(83)
if userString[inc] == "t":
KeyList.append(84)
if userString[inc] == "u":
KeyList.append(85)
if userString[inc] == "v":
KeyList.append(86)
if userString[inc] == "w":
KeyList.append(87)
if userString[inc] == "x":
KeyList.append(88)
if userString[inc] == "y":
KeyList.append(89)
if userString[inc] == "z":
KeyList.append(90)

inc += 1
userStringLen -= 1
print(KeyList)
print("Ready, please place your cursor into string input location")
print("Starting in", timeBeforeExecution, "seconds")
time.sleep(timeBeforeExecution)
inc2 = 0
while (endWhile == 0):
inc2 = 0
keyWhile = keyWhileSav
if (userWhile == 0):
endWhile = 1
if userWhile == 1:
if (repeater == 0):
endWhile = 1
while keyWhile != 0:
if inc2 >= 1:
if KeyList[inc2] == KeyList[inc2-1]:
time.sleep(0.3)
windll.user32.keybd_event(KeyList[inc2],0,0,0)
inc2 += 1
keyWhile -= 1
if userEntry == 1:
windll.user32.keybd_event(13,0,0,0)
if userWhile == 1:
repeater = repeater - 1
#-------------------------------------------------------
#-------------------------------------------------------
print("KeyBinder Version 0.2 by Mizugola")
userMode = input("(Simple : s / Advanced : a / Favorites : f / Macro : m) : ") #Choix du mode entre S, A, F et M
repeater = 0
if userMode == "s": #Mode Simple #-------------------------------------------------------------------------------------------------------------------------------
timeBeforeExecution = 10 #Choix de 10 secondes par défaut avant execution
userString = input("Input String to simulate : ") #Demande la phrase à simuler à l'utilisateur
userWhile = 1 #Choix d'une boucle par défaut
repeater = int(input("Repeat times ? : ")) #Nombre de fois à répéter pour la boucle (0 pour 1, -1 pour infini, et nombre supérieur pour nombre supérieur + 1)
userEntry = 1 #Choix d'appui sur Enter par défaut
if userMode == "a": #Mode Avancé #-------------------------------------------------------------------------------------------------------------------------------
timeBeforeExecution = int(input("Input time before execution : ")) #Choix du temps avant exécution
userString = input("Input String to simulate : ") #Choix de la phrase à simuler
userWhile = int(input("While mode ? 0/1 : ")) #Choix d'un mode boucle (0 : Non / 1 : Oui)
if (userWhile == 1): #Si le mode boucle est activé alors..
repeater = int(input("Repeat times ? : ")) #Nombre de fois ou la boucle doit être répétée
userEntry = int(input("Enter each time ? : ")) #Appui automatique sur Enter à chaque tour de boucle ?
if userMode == "f": #Mode Favoris #-------------------------------------------------------------------------------------------------------------------------------
favSet = open("favSet.txt","r") #Ouvre le fichier paramètres
#Détermine si timeBeforeExecution est placé en automatique ou manuel dans les paramètres
timeBeforeExecution = favSet.readline()
timeBeforeExecution = timeBeforeExecution.replace('[timeBeforeExecution]=','')
timeBeforeExecution = timeBeforeExecution.replace('\n','')
if timeBeforeExecution == "$":
timeBeforeExecution = int(input("Input time before execution : "))
else:
timeBeforeExecution = int(timeBeforeExecution)
#Fin du code pour déterminer le mode de timeBeforeExecution
#----------------------------------------------------------
#Détermine si la userString est placée en automatique ou manuelle dans les paramètres
userString = favSet.readline()
userString = userString.replace('[userString]=','')
userString = userString.replace('\n','')
if userString == "$":
userString = input("Input String to simulate : ")
#Fin du code pour déterminer le mode de timeBeforeExecution
#----------------------------------------------------------
#Détermine si la userWhile est placée en automatique ou manuelle dans les paramètres
userWhile = favSet.readline()
userWhile = userWhile.replace('[userWhile]=','')
userWhile = userWhile.replace('\n','')
if userWhile == "$":
userWhile = int(input("While mode ? 0/1 : "))
else:
userWhile = int(userWhile)
#Fin du code pour déterminer le mode de userWhile
#----------------------------------------------------------
#Détermine si le repeater est placée en automatique ou manuel dans les paramètres (seulement si userWhile est activée)
if userWhile == 1: #Détermine si le mode boucle est actif
repeater = favSet.readline()
repeater = repeater.replace('[repeater]=','')
repeater = repeater.replace('\n','')
if repeater == "$":
repeater = int(input("Repeat times ? : "))
else:
repeater = int(repeater)
print(repeater)
else:
repeater = favSet.readline()
repeater = 1
#Fin du code pour déterminer le mode de repeater
#----------------------------------------------------------
#Détermine si le userEntry est placée en automatique ou manuel dans les paramètres
userEntry = favSet.readline()
userEntry = userEntry.replace('[userEnter]=','')
userEntry = userEntry.replace('\n','')
if userEntry == "$":
userEntry = int(input("Enter each time ? : "))
else:
userEntry = int(userEntry)
#Fin du code pour déterminer le mode de userEntry
#----------------------------------------------------------
if userMode == "m": #Mode macro #-------------------------------------------------------------------------------------------------------------------------------
nameMacro = input("Name of the macro to execute ? : ") #Récupération du nom de la macro à exécuter
macro = open(nameMacro+"."+"kbm","r") #Ouverture du fichier macro
lines = 0 #On initialise la variable lines
while macro.readline(): #On vérifie le nombre de lignes de la macro
lines += 1 #Incrémentation du nombre de lignes
slines = lines #Sauvegarde du nombre de lignes
macro.seek(0)
alines = 1 #Ligne actuelle
while slines !=0:
command = macro.readline()
command = command.replace('\n','')
if command[0:3]=="$w=":
commandWhile = int(command[4:8])
commandWhileDel = command[4:8]
if command[3] == "&":
checkEntry = 1
elif command[3] == "@":
checkEntry = 0
command = command.replace("&","")
command = command.replace("@","")
commandStr = command.replace(commandWhileDel,'')
commandStr = commandStr.replace('$w=$k=','')
print(commandStr)
keyBinderUse(commandWhile, commandStr, 0, 1, checkEntry)
if command[0:3]=="$k=":
commandStr = command.replace('$k=','')
keyBinderUse(1, commandStr, 0, 0, 0)
if command[0:3]=="$pe":
windll.user32.keybd_event(13,0,0,0)
if command[0:3]=="$s=":
commandStr = command.replace('$s=','')
time.sleep(int(commandStr))
slines -= 1
alines +=1
if userMode != "m":
keyBinderUse(repeater, userString, timeBeforeExecution, userWhile, userEntry)
print("Done...")




Mon code n'est peut-être pas très propre je vous l'accorde.
Voilà mon problème, dans la partie en grasse se trouve la reconnaissance des touches du clavier (par exemple si je tape "salut" dans ma chaine, la KeyList sera égale à [s,a,l,u,t].
http://www.table-ascii.com/ Sur cette page j'ai trouvé les codes caractères des lettres de a à z mais je ne trouve pas les caractères du style è ou @ par exemple. Quelqu'un a une page pour les trouver ?


A voir également:

2 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
27 déc. 2012 à 20:01
Bonjour,

ASCII Code - The extended ASCII table
www.ascii-code.com/ - Traduire cette page
The following ASCII table with hex, octal, html, binary and decimal chart conversion contains both the ASCII control characters, ASCII printable characters and ...

Bonnes fetes de fin d'annee
1
heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 130
Modifié par heyquem le 28/12/2012 à 02:32
Salut

L'algorithme de ton code est très mauvais, du moins dans la première partie, parce que je n'ai pas lu la dernière partie, il faudrait que tu mettes ton code entre balises <code> et </code> au moyen du bouton <> , ce serait plus clair
0