开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 314|回复: 5
收起左侧

[易语言] 设置win10屏幕分辨率

[复制链接]
结帖率:89% (49/55)
发表于 2026-2-4 11:12:53 | 显示全部楼层 |阅读模式   湖北省荆州市
5精币
设置win10屏幕分辨率

系统_置屏幕分辨率 ()

为什么设置 不生效了  



有没有正常使用的代码


回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值

结帖率:100% (31/31)

签到天数: 2 天

发表于 2026-2-4 11:33:53 | 显示全部楼层   河南省安阳市
看看这个返回值是什么?如果不行就用注册表设置方法+刷新的方法
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 2 天

发表于 2026-2-4 11:55:58 | 显示全部楼层   江西省南昌市
设置屏幕分辨率;返回值说明:0设置成功;1重启后生效;-2不支持的分辨率;-1驱动无效或不支持
回复

使用道具 举报

结帖率:0% (0/2)
发表于 2026-2-4 12:29:48 | 显示全部楼层   湖南省株洲市
11111111111111111111111111111111111111111111
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 2 天

发表于 2026-2-4 13:09:56 | 显示全部楼层   **
import win32api
import win32con
import win32gui

def get_display_devices():
    """获取所有显示器设备信息"""
    devices = []
    devmode = win32api.EnumDisplaySettings(None, win32con.ENUM_CURRENT_SETTINGS)
    # 枚举主显示器(若有多显示器,可扩展枚举逻辑)
    devices.append({
        "device_name": devmode.DeviceName,
        "current_width": devmode.PelsWidth,
        "current_height": devmode.PelsHeight,
        "current_refresh": devmode.DisplayFrequency
    })
    return devices

def set_screen_resolution(width, height, refresh_rate=60):
    """
    设置屏幕分辨率
    :param width: 目标宽度(如1920)
    :param height: 目标高度(如1080)
    :param refresh_rate: 刷新率(默认60Hz,需显示器支持)
    :return: 是否设置成功
    """
    try:
        # 获取主显示器设备名
        devmode = win32api.EnumDisplaySettings(None, win32con.ENUM_CURRENT_SETTINGS)
        device_name = devmode.DeviceName

        # 配置目标分辨率参数
        devmode.PelsWidth = width
        devmode.PelsHeight = height
        devmode.DisplayFrequency = refresh_rate
        # 强制应用设置(0表示更新,1表示测试,2表示永久生效)
        devmode.Fields = win32con.DM_PELSWIDTH | win32con.DM_PELSHEIGHT | win32con.DM_DISPLAYFREQUENCY

        # 应用分辨率设置(需管理员权限)
        result = win32api.ChangeDisplaySettings(devmode, 0)
        
        # 检查设置结果
        if result == win32con.DISP_CHANGE_SUCCESSFUL:
            print(f"分辨率设置成功:{width}x{height} @ {refresh_rate}Hz")
            return True
        elif result == win32con.DISP_CHANGE_BADMODE:
            print(f"错误:显示器不支持 {width}x{height} @ {refresh_rate}Hz 分辨率")
            return False
        else:
            print(f"设置失败,错误码:{result}(需管理员权限运行)")
            return False
    except Exception as e:
        print(f"设置异常:{str(e)}")
        return False

# ==================== 测试使用 ====================
if __name__ == "__main__":
    # 1. 先查看当前显示器信息
    display_info = get_display_devices()[0]
    print(f"当前分辨率:{display_info['current_width']}x{display_info['current_height']}")
   
    # 2. 设置目标分辨率(请替换为你的显示器支持的分辨率,如1920x1080、1366x768等)
    # 注意:必须是显示器“推荐分辨率”,否则会设置失败
    success = set_screen_resolution(1920, 1080, 60)
回复

使用道具 举报

结帖率:0% (0/1)
发表于 2026-2-4 14:32:47 | 显示全部楼层   广东省江门市
# 2. 设置目标分辨率(请替换为你的显示器支持的分辨率,如1920x1080、1366x768等)
    # 注意:必须是显示器“推荐分辨率”,否则会设置失败
    success = set_screen_resolution(1920, 1080, 60)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表