命令行改变屏幕分辨率 cds ChangeDisplaySettings

执行文件 https://files.cnblogs.com/files/nlsoft/cds.7z

#include <windows.h>
#include <stdio.h>

void SetResolution(int width, int height)
{
    DEVMODE dm;
    memset(&dm, 0, sizeof(dm));
    dm.dmSize = sizeof(dm);

    if (0 != EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &dm))
    {
        int savew = dm.dmPelsWidth;
        int saveh = dm.dmPelsHeight;
        dm.dmPelsWidth = width;
        dm.dmPelsHeight = height;

        LONG result = ChangeDisplaySettings(&dm, 0);
        if (result == DISP_CHANGE_SUCCESSFUL)
        {
            printf("Display change successful [%dx%d]: %d", width, height, result);
        }
        else
        {
            dm.dmPelsWidth = savew;
            dm.dmPelsHeight = saveh;
            ChangeDisplaySettings(&dm, 0);
            printf("Display change failed [%dx%d]: %d", width, height, result);
        }
    }
}

void main(int argc, char** argv)
{
    int w,h;
    if(argc==1 || argc==2)
    {
        printf("Usage: cds w h\n");
    }
    if(argc>=3)
    {
        w=atoi(argv[1]);
        h=atoi(argv[2]);
        SetResolution(w, h);
    }
}

猜你喜欢

转载自www.cnblogs.com/nlsoft/p/13401642.html