Il y a quand même un problème : si 100% c'est 96 dpi, 125% ne peut pas donner 120 dpi !je sais mais c'est comme ça en fait
Sub test()
With CreateObject("WScript.Shell"): DPI_Regedit = .RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThemeManager\LastLoadedDPI"): End With
MsgBox DPI_Regedit
End Sub
Sub test2()
With ActiveWindow
Z = (.Zoom) / 100
dpi = (((.ActivePane.PointsToScreenPixelsY(72) - .ActivePane.PointsToScreenPixelsY(0)) / 72) / Z) * 72
End With
MsgBox dpi
End Sub
Oui, j'ai vu la capture d'écran, mais la résolution n'est pas indiquée, il y a seulement le pourcentage de zoom, qui lui me parait correct : plus tu augmentes le zoom, plus les objets affichés sont gros.ben mathématiquement oui mais c'est comme ça que veux tu c'est pas moi qui ai fait windows
tu a bien vu la capture
Normalement il n'y a pas de doute, je suis bien 111 dpi.tu veux savoir si tu est vraiment en 111 dpi
ben va a la source tu sera fixé comme ça
Sub test() 'Dpi
'lecture dans le registre
With CreateObject("WScript.Shell")
DPI_Regedit = .RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThemeManager\LastLoadedDPI"): End With
Debug.Print "le dpi par la cle ""ThemeManager"" et sa valeur dword ""LastLoadedDPI""dans le registre = à " & DPI_Regedit
End Sub
Sub test2() 'Dpi
'lecture dans le registre
With CreateObject("WScript.Shell")
DPI_Regedit = .RegRead("HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\AppliedDPI"): End With
Debug.Print "le dpi par la cle ""WindowMetrics"" et sa valeur dword ""AppliedDPI""dans le registre = à " & DPI_Regedit
End Sub
Sub test3() 'Dpi
'pour que ça fonctionne il ne faut pas que l'application soit minimisée
With ActiveWindow
Z = (.Zoom) / 100
dpi = (((.ActivePane.PointsToScreenPixelsX(72) - .ActivePane.PointsToScreenPixelsX(0)) / 72) / Z) * 72
End With
Debug.Print "le dpi par calcul avec ""pointtoscreenpixelx"" = à " & dpi
End Sub
Sub test4() 'Dpi
'pour que ça fonctionne il ne faut pas que l'application soit minimisée
With ActiveWindow
Z = (.Zoom) / 100
dpi = (((.ActivePane.PointsToScreenPixelsY(72) - .ActivePane.PointsToScreenPixelsY(0)) / 72) / Z) * 72
End With
Debug.Print "le dpi par calcul avec ""pointtoscreenpixely"" = à " & dpi
End Sub
Sub CoeffpointToPixel() 'coéfficient point to pixel à appliquer dans excel
'pour que ça fonctionne il ne faut pas que l'application soit minimisée
With ActiveWindow
Z = (.Zoom) / 100
With .ActivePane: ptopx = (.PointsToScreenPixelsX(72) - .PointsToScreenPixelsX(0)) / 72 / Z: End With
End With
Debug.Print "le coeff ""point to pixel"" par calcul avec pointtoscreenpixel(xou y) = à " & ptopx
End Sub
Code:le dpi par la cle "ThemeManager" et sa valeur dword "LastLoadedDPI"dans le registre = à 120 le dpi par la cle "WindowMetrics" et sa valeur dword "AppliedDPI"dans le registre = à 120 le dpi par calcul avec "pointtoscreenpixelx" = à 120 le dpi par calcul avec "pointtoscreenpixely" = à 119,230769230769 le coeff "point to pixel" par calcul avec pointtoscreenpixel(xou y) = à 1,66666666666667
le dpi par la cle "ThemeManager" et sa valeur dword "LastLoadedDPI"dans le registre = à 96
le dpi par la cle "WindowMetrics" et sa valeur dword "AppliedDPI"dans le registre = à 96
le dpi par calcul avec "pointtoscreenpixelx" = à 120
le dpi par calcul avec "pointtoscreenpixely" = à 120
le coeff "point to pixel" par calcul avec pointtoscreenpixel(xou y) = à 1,66666666666667
le dpi par la cle "ThemeManager" et sa valeur dword "LastLoadedDPI"dans le registre = à 96
le dpi par la cle "WindowMetrics" et sa valeur dword "AppliedDPI"dans le registre = à 96
le dpi par calcul avec "pointtoscreenpixelx" = à 96
le dpi par calcul avec "pointtoscreenpixely" = à 96
le coeff "point to pixel" par calcul avec pointtoscreenpixel(xou y) = à 1,33333333333333
Tu me dis que :
- si je zoome à 100%, alors mon affichage est à 96 dpi,
- si je zoome à 125%, alors mon affichage est à 120 dpi,
- si je zoome à 150%, alors mon affichage est à 144 dpi.
Ca y est, j'ai enfin compris ton erreur : c'est juste une mauvaise interprétation de ce que dit Microsoft.si tu es à 100 tu est en dpi 96 soit un coeff point to pixel de 4/3 soit 1.333333333333333
Oui, c'est ça, ton affichage est en 56 dpi.
Oui, oui, pas de souci.mais attention c'est une spéciale exportedUI ou txt contenant un exportedui