votre écran mesure Ht x mm larg y mm
votre écran mesure Ht x mm larg y mm
J'ai un petit problème.
Pour une application, je dois connaitre les dimensions physique d'un écran inconnu quelque soit la définition en cours sur cet écran.
En clair je dois connaitre en mm la hauteur largeur de n'importe quel écran quelque soit la définition.
le mien par exemple ht 280mm larg 506mm.
J'ai rien trouvé , mais j'ai peut'être mal cherché.
Si vous avez des idées merci d'avance.
Michel
Pour une application, je dois connaitre les dimensions physique d'un écran inconnu quelque soit la définition en cours sur cet écran.
En clair je dois connaitre en mm la hauteur largeur de n'importe quel écran quelque soit la définition.
le mien par exemple ht 280mm larg 506mm.
J'ai rien trouvé , mais j'ai peut'être mal cherché.
Si vous avez des idées merci d'avance.
Michel
Re: votre écran mesure Ht x mm larg y mm
Bonjour MLD, pourquoi ne fais-tu pas un écran virtuel avec des ascenseurs horizontaux et verticaux s'il s'avère que l'écran réel est plus petit que l'écran virtuel !
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: votre écran mesure Ht x mm larg y mm
A mon avis, c'est impossible à savoir, au mieux tu auras la diagonale, mais ça restera très approximatif.
Avec la résolution native et la taille d'un pixel sur un écran plat... Mais comment avoir la taille d'un pixel ?
Explique nous pourquoi c'est faire, on t'expliquera comment t'en passer
Avec la résolution native et la taille d'un pixel sur un écran plat... Mais comment avoir la taille d'un pixel ?

Explique nous pourquoi c'est faire, on t'expliquera comment t'en passer

Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Version de PB : 6.00LTS - 64 bits
Re: votre écran mesure Ht x mm larg y mm
Bonjour
Micoute,
Non. le problème reste entier.
Fig
Je sais parfaitement faire autrement.
Mais ceci me simplifirait tellement mon programme que j'insiste
Note bien que la taille d'un pixel dans n'importe quelle résolution serait aussi trés bien.
Micoute,
Non. le problème reste entier.
Fig
Je sais parfaitement faire autrement.


Note bien que la taille d'un pixel dans n'importe quelle résolution serait aussi trés bien.

- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: votre écran mesure Ht x mm larg y mm
Bonjour MLD
Je pensais qu'en partant de la résolution de l'écran et du nombres de pixels par cm on pouvait retrouver les dimensions d'un écran en cm. Mais ce n'est pas trop le cas. Le code doit être bon pour des photos par contre.
http://fr.wikipedia.org/wiki/Point_par_ ... conversion
Je pensais qu'en partant de la résolution de l'écran et du nombres de pixels par cm on pouvait retrouver les dimensions d'un écran en cm. Mais ce n'est pas trop le cas. Le code doit être bon pour des photos par contre.
http://fr.wikipedia.org/wiki/Point_par_ ... conversion
Code : Tout sélectionner
;Pixels par cm
hdc = GetDC_(GetDesktopWindow_())
If hdc : dpiX.l = GetDeviceCaps_(hdc, #LOGPIXELSX) : ReleaseDC_(GetDesktopWindow_(), hdc) : EndIf
Debug "Desktop resolution: " + Str(dpiX) + " dpi"
Debug "Pixels par cm: " + StrD(dpiX / 2.54)
ExamineDesktops()
Debug "Résolution: " + Str(DesktopWidth(0)) + " / "+ Str(DesktopHeight(0))
Debug "Dimension: " + StrD((DesktopWidth(0)/dpiX)*2.54, 2) + " cm / "+ StrD((DesktopHeight(0)/dpiX)*2.54, 2)+ " cm"
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: votre écran mesure Ht x mm larg y mm
Bonsoir falsam
Ton code pour les photos est OK
Pour l'ecran j'ai essayé ceci mais sa ne marche que pour des dimensions en natif.
nbPoints = (pixels/DPI) * 72
1 point = 1.72 inches = 25,4/72 = mm 0.3527
expl haut en mm = nbPoints * 0.3527
C'est un vrais casse tête chinois
Ton code pour les photos est OK
Pour l'ecran j'ai essayé ceci mais sa ne marche que pour des dimensions en natif.
nbPoints = (pixels/DPI) * 72
1 point = 1.72 inches = 25,4/72 = mm 0.3527
expl haut en mm = nbPoints * 0.3527
C'est un vrais casse tête chinois
Re: votre écran mesure Ht x mm larg y mm
@ Falsam
Si tu as une idée pour récuper le DPIet la résolution en natif c'est gagné, il suffit de faire le rapport dans les calculs

Si tu as une idée pour récuper le DPIet la résolution en natif c'est gagné, il suffit de faire le rapport dans les calculs


- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: votre écran mesure Ht x mm larg y mm
C'est ce que je fais dans mon code.MLD a écrit :Si tu as une idée pour récuper le DPI et la résolution en natif c'est gagné, il suffit de faire le rapport dans les calculs![]()
Les deux premières lignes récupère le dpi et je fais le rapport résolution/dpi dans les deux dernières lignes.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: votre écran mesure Ht x mm larg y mm
ben , je pense que c'est tout simplement impossible ....MLD a écrit :Pour une application, je dois connaitre les dimensions physique d'un écran inconnu quelque soit la définition en cours sur cet écran.
En clair je dois connaitre en mm la hauteur largeur de n'importe quel écran quelque soit la définition.
le mien par exemple ht 280mm larg 506mm.
sur un Ecran 10 pouce , tu peux avoir du 1024x600
ou bien du 800x600
mon ecran (Msi Gt 780 DXR) est en (1920 x 1080 pixels) de 17.3 pouces ... il existe des 17.3 pouce avec un résolution de 1600 x 900 (HP Pavilion g7-2302sf)
donc de la resolution, on ne peut en deduire la taille d'un ecran....
par contre , il est possible que l'information de la taille de l'ecran (10 pouces, 17 pouces, 22 pouces etc ... )
soit noté quelque part dans le Systeme d'exploitation ... ou a une adresse Ram a lire ...
tout comme on lit la température ... on doit pouvoir savoir la taille de l'ecran
quelque part dans le panneau de config ?
[reedit]
en cherchant dans le panneau de config (monitor )
je suis tombé sur cet info :

m'etonnerai pas que ce nombre représente mon monitor en 17.2
compare avec le Tiens ...

Re: votre écran mesure Ht x mm larg y mm
@falsam
" C'est ce que je fais dans mon code.
Les deux premières lignes récupère le dpi et je fais le rapport résolution/dpi dans les deux dernières lignes."
Oui mais seulement si ton écran est configué en natif. Si tu ne connais pas l'écran qui va afficher l'interface de ton logiciel tu vas
simplement avoir la config de l'écran mais pas la config native .
Mais merci
@ Dobro
J'ai fait comme tu a dit, mais chez moi le résultat ne veut rien dire.
Merci
Voila quelque chose qui semble impossible, et pourtant je suis sur que cette information existe sous une forme ou une autre, car Window a certainement besoin de cette information pour gérer l'affichage.

" C'est ce que je fais dans mon code.
Les deux premières lignes récupère le dpi et je fais le rapport résolution/dpi dans les deux dernières lignes."
Oui mais seulement si ton écran est configué en natif. Si tu ne connais pas l'écran qui va afficher l'interface de ton logiciel tu vas
simplement avoir la config de l'écran mais pas la config native .
Mais merci

@ Dobro
J'ai fait comme tu a dit, mais chez moi le résultat ne veut rien dire.
Merci
Voila quelque chose qui semble impossible, et pourtant je suis sur que cette information existe sous une forme ou une autre, car Window a certainement besoin de cette information pour gérer l'affichage.


Re: votre écran mesure Ht x mm larg y mm
quoiqu'il en soit, tu peux Forcer une résolution ...
et ainsi avoir ton univers pour fonctionner ....
ps: en fait je ne comprends pas trop pourquoi tu as besoin de connaitre la taille d'un ecran ....
ce qui compte pour un prg c'est la résolution (que tu peux lire, ou imposer )
eventuellement le DPI pour adapter un affichage du text ....
mais franchement la taille de l'ecran (10,17,22 pouces )... je vois pas trop a quoi ça sert
c'est comme vouloir connaitre la couleur du teeshirt de l'utilisateur .. (:lol: )
(encore que ça avec une webcam, on peut le savoir )
et ainsi avoir ton univers pour fonctionner ....

ps: en fait je ne comprends pas trop pourquoi tu as besoin de connaitre la taille d'un ecran ....
ce qui compte pour un prg c'est la résolution (que tu peux lire, ou imposer )
eventuellement le DPI pour adapter un affichage du text ....
mais franchement la taille de l'ecran (10,17,22 pouces )... je vois pas trop a quoi ça sert

c'est comme vouloir connaitre la couleur du teeshirt de l'utilisateur .. (:lol: )
(encore que ça avec une webcam, on peut le savoir )
Dernière modification par Backup le ven. 14/févr./2014 11:16, modifié 2 fois.
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: votre écran mesure Ht x mm larg y mm
Merci pour ton code Poshu qui mérite un Like+ 

Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: votre écran mesure Ht x mm larg y mm
Il existe une solution sous Windows:
M.
Code : Tout sélectionner
; VOIR ICI => http://zabaque.uqac.ca/infographie/inf02/pixel.htm
hdc = GetDC_(GetDesktopWindow_())
If hdc
Debug "Résolution: "
Debug "========================"
Debug "Width, in pixels, of the screen"
resX=GetDeviceCaps_(hdc, #HORZRES)
Debug resX
Debug "Height, in raster lines, of the screen"
resY=GetDeviceCaps_(hdc, #VERTRES)
Debug resY
Debug""
Debug "DPI: "
Debug "========================"
Debug "Number of pixels per logical inch along the screen width"
dpiX= GetDeviceCaps_(hdc, #LOGPIXELSX)
Debug dpiX
Debug "Number of pixels per logical inch along the screen height"
dpiY= GetDeviceCaps_(hdc, #LOGPIXELSY)
Debug dpiY
Debug""
Debug "Dimensions de l'écran fournies par le pilote: "
Debug "================================================="
Debug "Width, in millimeters, of the physical screen"
Debug GetDeviceCaps_(hdc, #HORZSIZE)
Debug "Height, in millimeters, of the physical screen"
Debug GetDeviceCaps_(hdc, #VERTSIZE)
Debug""
Debug "Dimensions calculées de l'écran : "
Debug "================================================="
;Calcul :
; 96 dpi => 1 dot = 1/96 pouce chez Microsoft
; 1 pouce = 2.54 cm
; Longeur écran=(ResX/96)*(dpiX/96)*2.54
Debug "Longeur écran calculé en cm: " + StrD(resX*dpiX*2.54/96/96)
Debug "Hauteur écran calculé en cm: " + StrD(resY*dpiY*2.54/96/96)
Debug""
ReleaseDC_(GetDesktopWindow_(), hdc)
EndIf
; http://msdn.microsoft.com/en-us/library/windows/desktop/dd144877%28v=vs.85%29.aspx
;
; HORZSIZE Width, in millimeters, of the physical screen.
;
; VERTSIZE Height, in millimeters, of the physical screen.
;
; HORZRES Width, in pixels, of the screen; or for printers, the width, in pixels, of the printable area of the page.
;
; VERTRES Height, in raster lines, of the screen; or for printers, the height, in pixels, of the printable area of the page.
;
; LOGPIXELSX Number of pixels per logical inch along the screen width. In a system With multiple display monitors, this value is the same For all monitors.
;
; LOGPIXELSY Number of pixels per logical inch along the screen height. In a system With multiple display monitors, this value is the same For all monitors.
Re: votre écran mesure Ht x mm larg y mm
Les dimensions fournies par le pilote sont justes, celles calculés, complétement fausses...Résolution:
========================
Width, in pixels, of the screen
1920
Height, in raster lines, of the screen
1080
DPI:
========================
Number of pixels per logical inch along the screen width
120
Number of pixels per logical inch along the screen height
120
Dimensions de l'écran fournies par le pilote:
=================================================
Width, in millimeters, of the physical screen
382
Height, in millimeters, of the physical screen
215
Dimensions calculées de l'écran :
=================================================
Longeur écran calculé en cm: 63.5
Hauteur écran calculé en cm: 35.71875
Est ce qu'on peut en déduire que:
Code : Tout sélectionner
Debug "Dimensions de l'écran fournies par le pilote: "
Debug "================================================="
Debug "Width, in millimeters, of the physical screen"
Debug GetDeviceCaps_(hdc, #HORZSIZE)
Debug "Height, in millimeters, of the physical screen"
Debug GetDeviceCaps_(hdc, #VERTSIZE)
Debug""
Donc la dimension réelle est bien accessible. Franchement j'ai appris un truc là !

Mais à quoi ça sert concrètement ?

Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Version de PB : 6.00LTS - 64 bits
Re: votre écran mesure Ht x mm larg y mm
non, chez moi c'est tout Faux !
mis a part ma resolution... mais ça ont peut deja le savoir avec la librairie Desktop()
j'ai le meme ecran que Fig (meme dimension)
mais le code n'affiche pas les meme données !

mis a part ma resolution... mais ça ont peut deja le savoir avec la librairie Desktop()

j'ai le meme ecran que Fig (meme dimension)
mais le code n'affiche pas les meme données !
ne marche pas non plus en 120 Dpi[14 :20 :57] Résolution:
[14 :20 :57] ========================
[14 :20 :57] Width, in pixels, of the screen
[14 :20 :57] 1920
[14 :20 :57] Height, in raster lines, of the screen
[14 :20 :57] 1080
[14 :20 :57]
[14 :20 :57] DPI:
[14 :20 :57] ========================
[14 :20 :57] Number of pixels per logical inch along the screen width
[14 :20 :57] 96
[14 :20 :57] Number of pixels per logical inch along the screen height
[14 :20 :57] 96
[14 :20 :57]
[14 :20 :57] Dimensions de l'écran fournies par le pilote:
[14 :20 :57] =================================================
[14 :20 :57] Width, in millimeters, of the physical screen
[14 :20 :57] 677
[14 :20 :57] Height, in millimeters, of the physical screen
[14 :20 :57] 381
[14 :20 :57]
[14 :20 :57] Dimensions calculées de l'écran :
[14 :20 :57] =================================================
[14 :20 :57] Longeur écran calculé en cm: 50.8
[14 :20 :57] Hauteur écran calculé en cm: 28.575
[14 :20 :57]
mon ecran fait 38.2 de large par 21.50 de haut (comme Fig) .. mais je n'obtient pas ses résultats[14 :24 :45] Résolution:
[14 :24 :45] ========================
[14 :24 :45] Width, in pixels, of the screen
[14 :24 :45] 1920
[14 :24 :45] Height, in raster lines, of the screen
[14 :24 :45] 1080
[14 :24 :45]
[14 :24 :45] DPI:
[14 :24 :45] ========================
[14 :24 :45] Number of pixels per logical inch along the screen width
[14 :24 :45] 120
[14 :24 :45] Number of pixels per logical inch along the screen height
[14 :24 :45] 120
[14 :24 :45]
[14 :24 :45] Dimensions de l'écran fournies par le pilote:
[14 :24 :45] =================================================
[14 :24 :45] Width, in millimeters, of the physical screen
[14 :24 :45] 677
[14 :24 :45] Height, in millimeters, of the physical screen
[14 :24 :45] 381
[14 :24 :45]
[14 :24 :45] Dimensions calculées de l'écran :
[14 :24 :45] =================================================
[14 :24 :45] Longeur écran calculé en cm: 63.5
[14 :24 :45] Hauteur écran calculé en cm: 35.71875
[14 :24 :45]
