Skip to main content

Uses ctypes to get the resolution information of all available monitors

Project description

Uses ctypes to get the resolution and other useful information of all available monitors

pip install getmonitorresolution

Tested against Windows 10 / Python 3.10 / Anaconda

The get_monitors_resolution() function retrieves the resolution information of all available monitors on a Windows machine. It takes an optional parameter dpi_awareness, which sets the DPI awareness level. The function returns a tuple containing two dictionaries, allmoni and moninfos.

allmoni is a dictionary containing the resolution details of all available monitors, with the monitor index as the key. The values of the dictionary are also dictionaries containing the width and height of each monitor.

moninfos is a dictionary containing the following resolution information of all the available monitors:

width_all_monitors: The combined width of all the monitors.
height_all_monitors: The maximum height among all the monitors.
max_monitor_width: The maximum width of all the monitors.
min_monitor_width: The minimum width of all the monitors.
max_monitor_height: The maximum height of all the monitors.
min_monitor_height: The minimum height of all the monitors.


def get_monitors_resolution(dpi_awareness=2):
    """
    Retrieves the resolution information of all the available monitors and returns the resolution details in a dictionary format.

    Args:
        dpi_awareness (int): Optional parameter to set DPI awareness level. Default is 2, which is the highest level of DPI awareness.

    Returns:
        tuple: A tuple containing two dictionaries, `allmoni` and `moninfos`.
        - `allmoni` (dict): A dictionary containing the resolution details of all available monitors, with the monitor index as key.
        - `moninfos` (dict): A dictionary containing the following resolution information of all the available monitors:
            * width_all_monitors (int): The combined width of all the monitors.
            * height_all_monitors (int): The maximum height among all the monitors.
            * max_monitor_width (int): The maximum width of all the monitors.
            * min_monitor_width (int): The minimum width of all the monitors.
            * max_monitor_height (int): The maximum height of all the monitors.
            * min_monitor_height (int): The minimum height of all the monitors.
			
			

from getmonitorresolution import get_monitors_resolution
eachmonitor,general = get_monitors_resolution()
print(eachmonitor)
print(general)

# output 
eachmonitor,general = get_monitors_resolution()
from pprint import pprint
pprint(eachmonitor)
{0: {'DeviceID': 'PCI\\VEN_10DE&DEV_1F06&Sxxxxxxxxxxxxxxxxx&REV_A1',
     'DeviceKey': '\\Registry\\Machine\\System\\CurrentControlSet\\Control\\Video\\{xxxxxxxxxxxxxx}\\0000',
     'DeviceName': '\\\\.\\DISPLAY1',
     'DeviceString': 'NVIDIA GeForce RTX 2060 SUPER',
     'StateFlags': 5,
     'height': 1080,
     'height_mm': 299,
     'is_primary': True,
     'width': 1920,
     'width_mm': 531,
     'x': 0,
     'y': 0},
 1: {'DeviceID': 'PCI\\VEN_10DE&xxxxxxxx&xxxxxxxxxxxxx&REV_A1',
     'DeviceKey': '\\Registry\\Machine\\System\\CurrentControlSet\\Control\\Video\\{xxxxxxxxxxxx}\\0001',
     'DeviceName': '\\\\.\\DISPLAY2',
     'DeviceString': 'NVIDIA GeForce RTX 2060 SUPER',
     'StateFlags': 1,
     'height': 1080,
     'height_mm': 299,
     'is_primary': False,
     'width': 1920,
     'width_mm': 531,
     'x': 1920,
     'y': 0}}
pprint(general)
{'height_all_monitors': 2160,
 'max_monitor_height': 1080,
 'max_monitor_width': 1920,
 'min_monitor_height': 1080,
 'min_monitor_width': 1920,
 'width_all_monitors': 3840}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

getmonitorresolution-0.13.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

getmonitorresolution-0.13-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file getmonitorresolution-0.13.tar.gz.

File metadata

  • Download URL: getmonitorresolution-0.13.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for getmonitorresolution-0.13.tar.gz
Algorithm Hash digest
SHA256 eb556a05bffba5e6aca12288024026a806fe6c71b5baf185e787058aab0834c7
MD5 2bc729a63230ef90779bdaafbf7702f8
BLAKE2b-256 2766a45d5696245d4c2f741e4a725a1adbb1c5e14e16b383cc630b77611bfd08

See more details on using hashes here.

File details

Details for the file getmonitorresolution-0.13-py3-none-any.whl.

File metadata

File hashes

Hashes for getmonitorresolution-0.13-py3-none-any.whl
Algorithm Hash digest
SHA256 41d8655521a9b35329ab9593bcf312c76e84e886527f3dc843c0040af6e7dd8a
MD5 f4da86999cc6f701765de2661287e665
BLAKE2b-256 d529dd9b0b48368f5a50e7f1f93de0147fdb61f40f85b9a1f6f1f6dfdb9e8341

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page