中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-07 12:54
48,040 主题排行 / 350,125 发帖 / 今日 0 篇 / 48,252 会员排行
DOS批处理 & 脚本技术(批处理室) » 批处理或者vbs如何获取当前分辨率【讨论】
可打印版本  2,770 / 21
第16楼 zh159 发表于 2007-07-09 19:29
金牌会员 发帖 1,467 积分 3,687
Originally posted by lwb1978 at 2007-7-9 18:48:
re ccwan
因为我的电脑会取到两个分辨率的值,一个是实际的,下边一个是空的,所以在for过后,最终%screenwidth% %screenheight%得到的是空值,所以我测试 ...

不用两次读取:
第17楼 lwb1978 发表于 2007-07-09 19:54
初级用户 发帖 26 积分 72
re zh159
测试了你的代码,获取不到。下面是我的运行结果:

D:\>setlocal EnableDelayedExpansion

D:\>echo 当前分辨率为:
当前分辨率为:

D:\>for /F %i in ('"wmic desktopmonitor get screenwidth,screenheight /value"') do (
set %i 1>nul
if not "!screenwidth!" == "" set 屏幕宽=!screenwidth! && set 屏幕高=!screenheight!
)

D:\>(
set
1>nul
if not "!screenwidth!" == "" set 屏幕宽=!screenwidth! && set 屏幕高=!screenheight!
)

D:\>(
set
1>nul
if not "!screenwidth!" == "" set 屏幕宽=!screenwidth! && set 屏幕高=!screenheight!
)

D:\>(
set ScreenHeight=768
1>nul
if not "!screenwidth!" == "" set 屏幕宽=!screenwidth! && set 屏幕高=!screenheight!
)

D:\>(
set ScreenWidth=1024
1>nul
if not "!screenwidth!" == "" set 屏幕宽=!screenwidth! && set 屏幕高=!screenheight!
)

D:\>(
set
1>nul
if not "!screenwidth!" == "" set 屏幕宽=!screenwidth! && set 屏幕高=!screenheight!
)

D:\>(
set
1>nul
if not "!screenwidth!" == "" set 屏幕宽=!screenwidth! && set 屏幕高=!screenheight!
)

D:\>(
set ScreenHeight=
1>nul
if not "!screenwidth!" == "" set 屏幕宽=!screenwidth! && set 屏幕高=!screenheight!
)

D:\>(
set ScreenWidth=
1>nul
if not "!screenwidth!" == "" set 屏幕宽=!screenwidth! && set 屏幕高=!screenheight!
)

D:\>(
set
1>nul
if not "!screenwidth!" == "" set 屏幕宽=!screenwidth! && set 屏幕高=!screenheight!
)

D:\>(
set
1>nul
if not "!screenwidth!" == "" set 屏幕宽=!screenwidth! && set 屏幕高=!screenheight!
)

D:\>echo
ECHO 处于打开状态。

D:\>pause1>nul
第18楼 qq43142691 发表于 2008-01-03 07:20
中级用户 发帖 152 积分 326
当前分辨率为:

分析 Mof 文件: C:\WINDOWS\system32\wbem\Cli.mof(阶段错误 - 2)
计算机返回错误 0x8004402f
环境变量 Please 没有定义
ECHO 处于关闭状态。
第19楼 Delwo 发表于 2008-01-03 09:46
初级用户 发帖 7 积分 20
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colDesktops = objWMIService.InstancesOf("Win32_DesktopMonitor")

For Each objDesktop In colDesktops
WScript.Echo "桌面宽度:" & objDesktop.ScreenWidth
WScript.Echo "桌面高度:" & objDesktop.ScreenHeight
Next
第20楼 electronixtar 发表于 2008-01-04 21:47
铂金会员 发帖 2,672 积分 7,493
都弄复杂了

1.vbs:
第21楼 U0erXT 发表于 2008-02-11 20:56
新手上路 发帖 6 积分 16 来自 河北
先拿回去用用...
第22楼 U0erXT 发表于 2008-02-11 21:07
新手上路 发帖 6 积分 16 来自 河北
Originally posted by everest79 at 2007-7-9 09:16:
for /f %%i in ('"wmic desktopmonitor get screenwidth,screenheight /value"') do set %%i
echo %screenwidth% %screenheight%



还有个疑问,就是:
为什么非要 echo off 呢? 否则就出现"ECHO 处于打开状态。"??
为什么呢?
上一页  1 2
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023