需要用windows的api,ChangeDisplaySettings 

实现代码如下:

1 import win32api
2 dm = win32api.EnumDisplaySettings(None, 0)
3 dm.PelsHeight = 900
4 dm.PelsWidth = 1400
5 dm.BitsPerPel = 32
6 dm.DisplayFixedOutput = 0
7 win32api.ChangeDisplaySettings(dm, 0)

其中,一开始没有设置DisplayFixedOutput的值,在我机器上的效果是,切到小分辨率时,屏幕只在中间一小块,而在系统中调整时,是可以拉伸的,后来才找到是这个值在起作用

MSDN上的解释为

Value

Meaning

 

DMDFO_DEFAULT

The display's default setting.

#define DMDFO_DEFAULT   0

DMDFO_CENTER

The low-resolution image is centered in the larger screen space.

#define DMDFO_CENTER    2

DMDFO_STRETCH

The low-resolution image is stretched to fill the larger screen space. 

#define DMDFO_STRETCH   1

将值设为1,或者0,在我机器上都为拉伸

有了这个脚本,需要改变分辨率时,只需双击一下

 

 

 

Linux 命令行修改分辨率

通过 xrandr 命令查看本机屏显配置

Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
VGA-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
   1920x1080     60.00*+
   1680x1050     59.95  
   1280x1024     75.02    60.02  
   1440x900      59.89  
   1280x960      60.00  
   1280x720      60.00  
   1024x768      75.03    70.07    60.00  
   832x624       74.55  
   800x600       72.19    75.00    60.32    56.25  
   640x480       75.00    72.81    66.67    59.94  
   720x400       70.08  
HDMI-1 disconnected (normal left inverted right x axis y axis)
DVI-D-1 disconnected (normal left inverted right x axis y axis)

修改分辨率:

xrandr --output VGA-1 --mode 1024x768

参考: https://wiki.ubuntu.com/X/Config/Resolution