Pendant que je joue à un jeu en plein écran, j'aimerais bien afficher des informations provenant d'un programme python par dessus le jeu. A un endroit précis dans l'écran.
Comme pour rajouter du HUD.
Les informations à afficher sont sous forme de texte et de chiffres qui se mettent à jour continuellement.
Voici mon code pour l'instant, il ne fait que de trouver du texte dans l'écran pour l'instant :
import pytesseract
from PIL import ImageGrab
from PIL import Image
import time
while(1):
box = (0, 0, 1920, 1080) #taille de l'écran
im = ImageGrab.grab(box) #capture d'écran
area = (1278, 442, 1329, 458) #zone où sont inscrites les données à récupérer
cropped_img = im.crop(area) #rognage de la capture
pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files (x86)\Tesseract-OCR\tesseract.exe" #pour fixer un bug de chemin de pytesseract
sortie = pytesseract.image_to_string(cropped_img, lang='eng', config="--oem 0 -c tessedit_char_whitelist=%.1234567890") #pour trouver le texte dans l'image, le texte contient uniquement des chiffres et . et %
print(sortie) #un affichage en console pour l'instant
time.sleep(0.5) #pour ralentir un peu
J'aimerais bien donc remplacer le print par quelque chose qui s'afficherait au dessu de toutes l'application en plein écran.
Donc le but de mon programme, lorsqu'il sera fini est de traiter les données affichées à l'écran en faisant des calculs complexes, puis d'afficher un résultat sur la droite de l'écran.
***** EDIT : *****
j'ai trouvé quelque chose avec tkinter, ça s'affiche bien au dessus des applications de bureau, mais lorsque c'est une application en plein écran, le texte disparait :
import tkinter, win32api, win32con, pywintypes
class variables:
def __init__ (self,auec):
self.auec = auec
stat = variables(0) #variable qui correspond au compteur à afficher
def compteur():
stat.auec += 1 #incrémentation du compteur
text_fini = "aUEC : "+str(stat.auec) #texte à afficher
label = tkinter.Label(text=text_fini, justify="left", font=('Bahnschrift SemiBold','20'), fg='black', bg='white') #police et couleur du texte
label.master.overrideredirect(True)
label.master.geometry("+1700+400")
label.master.lift()
label.master.wm_attributes("-topmost", True)
label.master.wm_attributes("-disabled", True)
label.master.wm_attributes("-transparentcolor", "white")
hWindow = pywintypes.HANDLE(int(label.master.frame(), 16))
exStyle = win32con.WS_EX_COMPOSITED | win32con.WS_EX_LAYERED | win32con.WS_EX_NOACTIVATE | win32con.WS_EX_TOPMOST | win32con.WS_EX_TRANSPARENT
win32api.SetWindowLong(hWindow, win32con.GWL_EXSTYLE, exStyle)
label.grid(row=0,column=0)
label.after(100,compteur)
label = tkinter.Label(text=stat.auec, font=('Bahnschrift SemiBold','28'), fg='black', bg='white')
compteur()
label.mainloop()
apres bah je sais pas comment faire pour continuer d'afficher en plein écran, si quelqu'un a une idée et qu'il arriverait a m'expliquer ça serait cool
bonne journée !
- Edité par _Tugdual_ 6 avril 2020 à 13:51:45
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.
Affichage en plein écran
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.