Aide et conseils concernant AutoIt et ses outils.
Chokolaa
Niveau 4
Messages : 55 Enregistré le : ven. 04 nov. 2011 13:12
Status :
Hors ligne
#1
Message
par Chokolaa » mar. 03 mai 2016 13:24
Bonjour,
AutoIt détecte la résolution de mon écran comme étant 1536x864 pixel alors que je suis en 1920x1080 pixel
Jusque la ça ne me posait pas de souci, mais j'ai récemment fait un programme qui utilise la fonction capture d'écran et donc il me fait des captures de 1536x864 donc pixelisée et pas adapté à ce que je veux faire...
Bref, quelqu'un sait comment résoudre ce problème ?
Merci !
Modifié en dernier par
Chokolaa le mer. 04 mai 2016 21:51, modifié 2 fois.
jguinch
Modérateur
Messages : 2515 Enregistré le : lun. 14 févr. 2011 22:12
Status :
Hors ligne
#2
Message
par jguinch » mar. 03 mai 2016 14:00
Tu utilises quelle fonction pour récupérer la résolution ?
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Chokolaa
Niveau 4
Messages : 55 Enregistré le : ven. 04 nov. 2011 13:12
Status :
Hors ligne
#3
Message
par Chokolaa » mar. 03 mai 2016 14:50
Je n'utilise aucune fonction pour récupérer ma résolution. Tout ce que je fais dans mon programme c'est un "_ScreenCapture_Capture"
Pour être plus clair dans mon explication :
@DesktopWidth renvoie 1535 au lieu de 1920
@DesktopHeight renvoie 863 au lieu de 1080
Sachant que ma résolution actuellement est 1920x1080
jguinch
Modérateur
Messages : 2515 Enregistré le : lun. 14 févr. 2011 22:12
Status :
Hors ligne
#4
Message
par jguinch » mar. 03 mai 2016 15:48
Tu peux essayer de mettre cette ligne en début de script ?
Et tester ensuite les valeurs de @DesktopWidth et @DesktopHeight
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Hugues
Niveau 8
Messages : 597 Enregistré le : ven. 21 sept. 2012 18:12
Status :
Hors ligne
#5
Message
par Hugues » mar. 03 mai 2016 15:49
Salut,
Essaies ça:
► Afficher le texte
Code : Tout sélectionner
#include <Array.au3>
_GetWorkArea()
Func _GetWorkArea()
Global $Area[6]
Local $StartRect = DllStructCreate("int[4]")
Local $PStartRect = DllStructGetPtr($StartRect)
DllCall("user32.dll", "int", "SystemParametersInfo", "int", 48, "int", 0, "ptr", $PStartRect, "int", 0)
$Area[0] = DllStructGetData($StartRect, 1, 1)
$Area[1] = DllStructGetData($StartRect, 1, 2)
$Area[2] = DllStructGetData($StartRect, 1, 3)
$Area[3] = DllStructGetData($StartRect, 1, 4)
$Area[4] = $Area[2] - $Area[0]
$Area[5] = $Area[3] - $Area[1]
Return $Area
EndFunc ;==>_GetWorkArea
_ArrayDisplay($Area)
Chokolaa
Niveau 4
Messages : 55 Enregistré le : ven. 04 nov. 2011 13:12
Status :
Hors ligne
#6
Message
par Chokolaa » mar. 03 mai 2016 20:43
@jguinch : Merci ça me retourne bien 1920x1080 grâce à ta ligne
, mais y'a pas moyen que tout marche nickel sans cette ligne de code ? ^^
@Hugues : Ton code retourne ceci :
Row|Col 0
[0]|0
[1]|0
[2]|1536
[3]|824
[4]|1536
[5]|824
jguinch
Modérateur
Messages : 2515 Enregistré le : lun. 14 févr. 2011 22:12
Status :
Hors ligne
#7
Message
par jguinch » mer. 04 mai 2016 10:00
Le "problème" vient à priori de la configuration de l'affichage. Essai de configurer la taille du texte sur 100%
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Chokolaa
Niveau 4
Messages : 55 Enregistré le : ven. 04 nov. 2011 13:12
Status :
Hors ligne
#8
Message
par Chokolaa » mer. 04 mai 2016 15:47
Comment je fais ça ?
jguinch
Modérateur
Messages : 2515 Enregistré le : lun. 14 févr. 2011 22:12
Status :
Hors ligne
#9
Message
par jguinch » mer. 04 mai 2016 18:29
Dans les options d'affichage de Windows.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Chokolaa
Niveau 4
Messages : 55 Enregistré le : ven. 04 nov. 2011 13:12
Status :
Hors ligne
#10
Message
par Chokolaa » mer. 04 mai 2016 21:50
Merci
jguinch
Modérateur
Messages : 2515 Enregistré le : lun. 14 févr. 2011 22:12
Status :
Hors ligne
#11
Message
par jguinch » ven. 13 mai 2016 22:20
Voir aussi ce sujet sur le forum US :
https://www.autoitscript.com/forum/topi ... it-macros/ , dans lequel une autre solution plus propre est proposée : ajouter la directive
#AutoIt3Wrapper_Res_HiDpi=Y en début de script
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !