中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批处理或者vbs如何获取当前分辨率【讨论】
« [1] [2] »
作者:
标题: 批处理或者vbs如何获取当前分辨率【讨论】 上一主题 | 下一主题
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 16 楼』:  



  Quote:
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




2007-7-9 19:29
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lwb1978
初级用户




积分 72
发帖 26
注册 2007-5-17
状态 离线
『第 17 楼』:  

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

2007-7-9 19:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qq43142691
中级用户





积分 327
发帖 152
注册 2007-5-4
状态 离线
『第 18 楼』:  

当前分辨率为:

分析 Mof 文件: C:\WINDOWS\system32\wbem\Cli.mof(阶段错误 - 2)
计算机返回错误 0x8004402f
环境变量 Please 没有定义
ECHO 处于关闭状态。

2008-1-3 07:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Delwo
初级用户





积分 20
发帖 7
注册 2007-12-18
状态 离线
『第 19 楼』:  

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

2008-1-3 09:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 20 楼』:  

都弄复杂了

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'>"
2008-1-4 21:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
U0erXT
新手上路





积分 16
发帖 6
注册 2008-2-11
来自 河北
状态 离线
『第 21 楼』:  

先拿回去用用...



[R]—張[/R]
2008-2-11 20:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
U0erXT
新手上路





积分 16
发帖 6
注册 2008-2-11
来自 河北
状态 离线
『第 22 楼』:  



  Quote:
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 处于打开状态。"??
为什么呢?



[R]—張[/R]
2008-2-11 21:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: