8
votes

Existe-t-il un moyen de déterminer la taille physique du moniteur?

en pouces, par ex. 21 'moniteur. L'application est une application WinForms standard.

Edit: Il apparaît là-bas n'est vraiment pas un moyen fiable d'accomplir ce dont j'ai besoin.


10 commentaires

Le titre a oublié de mentionner que l'OP veut la taille physique de l'image du moniteur (en pouces), pas la résolution de bureau en sq. Pixels.


@Andreas votre suggestion ajoutée


Je pourrais facilement vous donner une taille de pixel mais c'est tout ...


Et si vous utilisez un projecteur? Ensuite, la taille de l'écran dépend de la distance entre le projecteur et l'écran de visualisation. Comment pouvez-vous préciser cela?


Dupliqué possible de C #: obtenir une taille de bureau complète?


@Donal Fellows: Non, c'est une question totalement différente. Cela concerne la taille physique du moniteur ...


Vous devez faire attention, certains moniteurs âgés signalent leur taille, y compris la lunette! :-( Je pense que cela sera difficile, sinon impossible sans demander à l'utilisateur ou exécuter une sorte d'étalonnage.


Cette question est un bit mal tagué. C'est vraiment un problème de langue-agnostique.


@Andreas: Certains moniteurs mentent juste à propos de leur taille, et les fenêtres (bien, au moins pendant longtemps) tendent à assumer une densité de pixels fixe. Peut-être que les choses sont meilleures maintenant, mais je pouvais croire que les choses sont toujours dans cet état désolé ...


Existe-t-il un appel pour obtenir la résolution de l'écran dans DPI?


5 Réponses :


1
votes

S'il n'y a pas de manière spécifique à laNette, vous pouvez toujours utiliser l'API Windows natif: getSystemmetrics avec sm_cyscreen ou sm_cxcreen . .


2 commentaires

GetSystemmetrics ne rapporte que des choses comme la résolution. Je veux la taille du moniteur (par exemple 21 ').


Que est beaucoup plus difficile, pour les valeurs de difficiles == impossible



2
votes

application Web ou application de bureau? Tout ce que vous pouvez trouver sur l'application Web est la résolution de l'écran du navigateur, à l'aide de JavaScript: xxx pré>

pour une application de bureau, vous faites ceci: p>

MessageBox.Show( "Monitor Size:" +
   SystemInformation.PrimaryMonitorSize );


0 commentaires

5
votes

Cela ne peut pas être garanti. Windows ne peut pas connaître la taille du moniteur à moins que son pilote l'interroge et signale la réponse à Windows.

Cependant, vous voudrez peut-être essayer xxx

ou getDevicecaps (DC, Horzsize) et getDevicecaps (CC, VERTSIZE) puis Calulez le carré sur l'hypoténuse.

Notez qu'il y a aussi un à une question identique ici sur le débordement de pile.


0 commentaires

2
votes

Je pense à deux façons de travailler dans des conditions spéciales:


0 commentaires

2
votes

Vous pouvez utiliser l'EDID dans le registre pour obtenir la taille de l'écran physique. Le pilote du moniteur rapporte la taille d'écran physique à Windows.


0 commentaires