中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-07 13:37
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批处理或者vbs如何获取当前分辨率【讨论】 查看 2,774 回复 21
16 发表于 2007-07-09 19:29 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
Originally posted by lwb1978 at 2007-7-9 18:48:
re ccwan
因为我的电脑会取到两个分辨率的值,一个是实际的,下边一个是空的,所以在for过后,最终%screenwidth% %screenheight%得到的是空值,所以我测试 ...

不用两次读取:
@echo off
setlocal EnableDelayedExpansion
echo 当前分辨率为:
for /f %%i in ('"wmic desktopmonitor get screenwidth,screenheight /value"') do (
set %%i>nul
if not "!screenwidth!" == "" set 屏幕宽=!screenwidth!&&set 屏幕高=!screenheight!
)
echo %屏幕宽% %屏幕高%
pause>nul
17 发表于 2007-07-09 19:54 ·  中国 广西 百色 电信
初级用户
积分 72
发帖 26
注册 2007-05-17 18:42
19年会员
UID 88849
性别 男
状态 离线
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 发表于 2008-01-03 07:20 ·  中国 广东 东莞 电信
中级用户
★★
积分 326
发帖 152
注册 2007-05-04 06:16
19年会员
UID 87412
性别 男
状态 离线
当前分辨率为:

分析 Mof 文件: C:\WINDOWS\system32\wbem\Cli.mof(阶段错误 - 2)
计算机返回错误 0x8004402f
环境变量 Please 没有定义
ECHO 处于关闭状态。
19 发表于 2008-01-03 09:46 ·  中国 广东 佛山 南海区 电信
初级用户
积分 20
发帖 7
注册 2007-12-18 11:09
18年会员
UID 106023
性别 男
状态 离线
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 发表于 2008-01-04 21:47 ·  中国 四川 成都 联通
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
20年会员
UID 42173
性别 男
状态 离线
都弄复杂了

1.vbs:

set oIE = CreateObject("htmlfile")
with oIE.parentWindow.screen
msgbox .width & "×" & .height
end with

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
21 发表于 2008-02-11 20:56 ·  中国 河北 秦皇岛 联通
新手上路
积分 16
发帖 6
注册 2008-02-11 19:54
18年会员
UID 110487
性别 男
来自 河北
状态 离线
先拿回去用用...
—張
22 发表于 2008-02-11 21:07 ·  中国 河北 秦皇岛 联通
新手上路
积分 16
发帖 6
注册 2008-02-11 19:54
18年会员
UID 110487
性别 男
来自 河北
状态 离线
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 处于打开状态。"??
为什么呢?
—張
论坛跳转: