请问使用VBS调用WMI获取当前系统版本(不是版本号,是类似 Windows 7 专业版 这种字符串)要如何做

请问使用VBS调用WMI获取当前系统版本(不是版本号,是类似 Windows 7 专业版 这种字符串)要如何做,第1张

strComputer = ""

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!//" & strComputer & "/root/cimv2")

Set colOperatingSystems = objWMIServiceExecQuery("Select from Win32_OperatingSystem")

For Each objOperatingSystem In colOperatingSystems

MsgBox objOperatingSystemCaption

MsgBox objOperatingSystemVersion

Next

下面是VBS模拟按键的 不懂的可以问我Q279325850

Set objShell = CreateObject("WscriptShell")

strCommandLine = "ttpsetupexe" '启动安装程序

objShellRun(strCommandLine)

set WshShell = CreateObject("WScriptShell")

WScriptSleep 3000 '延时3秒

WshShellSendKeys "s" '模拟按下 S 键开始安装

WScriptSleep 300 '延时03秒

WshShellSendKeys "a" '模拟按下 A 键同意协议

WScriptSleep 300

WshShellSendKeys "{ENTER}" '模拟按下回车键执行下一步

WScriptSleep 300

WshShellSendKeys "{ENTER}" '模拟按下回车键执行下一步

WScriptSleep 300

WshShellSendKeys "{ENTER}" '模拟按下回车键执行下一步

WScriptSleep 2000

WshShellSendKeys "{TAB}" '模拟按下 Tab 键选择安装项目

WScriptSleep 300

WshShellSendKeys "{TAB}"

WScriptSleep 300

WshShellSendKeys " " '模拟按下空格键去除安装百度超级搜霸一行前的√号

WScriptSleep 300

WshShellSendKeys "{ENTER}" '模拟按下回车键完成最后一步

把以上代码复制到记事本中(右边的文字是说明,一起复制也不影响),再另存为 AutoSetupvbs ,把此文件存放在千千静听安装执行程序(ttpsetupexe)同一目录下,双击 AutoSetupvbs 即可自动完成千千静听的安装。成功的关键是,你必须先安装一次千千静听,然后记住每一步的按键是什么,这个文件就可以拿去别的机上执行了。

SendKeys 的参数说明:

使用 SendKeys 方法可以将键击发送到无自动化界面的应用程序中。多数键盘字符都可用一个键击表示。某些键盘字符由多个键击组合而成(例如,CTRL+SHIFT+HOME)。要发送单个键盘字符,请将字符本身作为 string 参数发送。例如,要发送字母 x,则请发送 string 参数 "x"。

可使用 SendKeys 同时发送多个键击。为此,可将每个键击按顺序排列在一起,以此来创建表示一系列键击的复合字符串参数。例如,要发送键击 a、b 和 c,则需要发送字符串参数 "abc" 。SendKeys 方法将某些字符用作字符的修饰符(而不使用其本身的含义)。这组特殊的字符可包括圆括号、中括号、大括号,以及:

加号 "+"

插入记号 "^"

百分号 "%"

和“非”符号 "~"

用大括号 "{}" 括起这些字符可以发送它们。例如,要发送加号,请使用字符串参数 "{+}"。SendKeys中使用的中括号 "[ ]" 无任何特殊含义,但是必须把它们括在大括号中,以便容纳确实要赋予其特殊含义的应用程序(例如,对于动态数据交换 (DDE) 就是这样)。

要发送左中括号字符,请发送字符串参数 "{[}";要发送右中括号字符,请发送字符串参数 "{]}"。

要发送左大括号字符,请发送字符串参数 "{{}";要发送右大括号字符,请发送字符串参数 "{}}"。

某些键击不生成字符(如 ENTER 和 TAB)。某些键击表示 *** 作(如 BACKSPACE 和 BREAK)。要发送这些类型的键击,请发送下表中列出的参数:

空格键 " "

退格键 {BACKSPACE} 或 {BS} 或 {BKSP}

BREAK {BREAK}

DELETE {DELETE} 或 {DEL}

向下键 {DOWN}

向上键 {UP}

向左键 {LEFT}

向右键 {RIGHT}

END {END}

ENTER {ENTER} 或 ~

ESC {ESC}

TAB {TAB}

CAPS LOCK {CAPSLOCK}

HELP {HELP}

HOME {HOME}

INSERT {INSERT} 或 {INS}

NUM LOCK {NUMLOCK}

PAGE DOWN {PGDN}

PAGE UP {PGUP}

PRINT SCREEN {PRTSC}

SCROLL LOCK {SCROLLLOCK}

F1 {F1}

F2 {F2}

F3 {F3}

F4 {F4}

F5 {F5}

F6 {F6}

F7 {F7}

F8 {F8}

F9 {F9}

F10 {F10}

F11 {F11}

F12 {F12}

要发送由常规键击和 SHIFT、CTRL 或 ALT 组合而成的键盘字符,请创建表示该键击组合的复合字符串参数。可通过在常规键击之前添加一个或多个以下特殊字符来完成上述 *** 作:

SHIFT +

CTRL ^

ALT %

注意:这样使用时,不用大括号括起这些特殊字符。

要指定在按下多个其他键时,按下 SHIFT、CTRL 和 ALT 的组合,请创建复合字符串参数,用括号括起其中的组合键。例如,要发送的组合键指定:

如果在按 e 和 c 的同时按 SHIFT 键,则发送字符串参数 "+(ec)"。

如果在按 e 时只按 c(而不按 SHIFT),则发送字符串参数 "+ec"。

可使用 SendKeys 方法发送一种在一行内重复按键的键击。为此,要创建复合字符串参数,以指定要重复的键击,并在其后指定重复次数。可使用 {键击 数字} 形式的复合字符串参数来完成上述 *** 作。例如,如果要发送 10 次 "x",则需要发送字符串参数 "{x 10}"。请确保在键击和数字之间有一个空格。

注意:只可以发送重复按一个键的键击。例如,可以发送 10 次 "x",但不可发送 10 次 "Ctrl+x"。

注意:不能向应用程序发送 PRINT SCREEN 键 {PRTSC}。

例子1:关机脚本 (模拟按键为:Ctrl + Esc、u、u )

把以下代码复制至记事本,另存为 offvbs

set WshShell = CreateObject("WScriptShell")

WshShellSendKeys "^{ESC}uu"

例子2:重启脚本 (模拟按键为:Ctrl + Esc、u、r )

把以下代码复制至记事本,另存为 rebootvbs

set WshShell = CreateObject("WScriptShell")

WshShellSendKeys "^{ESC}ur"

例子3:切换输入法 (模拟同时按下:Shift Ctrl )

set WshShell = CreateObject("WScriptShell")

WshShellSendKeys "+(^)"

例子4:输入 cn-dosnet! 至记事本并保存为 CnDostxt

Dim WshShell

Set WshShell=WScriptCreateObject("WScriptShell")

WshShellRun "notepad"

WScriptSleep 1500

WshShellAppActivate "无标题 - 记事本"

WshShellSendKeys "c"

WScriptSleep 200

WshShellSendKeys "n"

WScriptSleep 200

WshShellSendKeys "-"

WScriptSleep 200

WshShellSendKeys "d"

WScriptSleep 200

WshShellSendKeys "o"

WScriptSleep 200

WshShellSendKeys "s"

WScriptSleep 200

WshShellSendKeys ""

WScriptSleep 200

WshShellSendKeys "n"

WScriptSleep 200

WshShellSendKeys "e"

WScriptSleep 200

WshShellSendKeys "t"

WScriptSleep 200

WshShellSendKeys "!"

WScriptSleep 200

WshShellSendKeys "%FS"

WScriptSleep 500

WshShellSendKeys "C"

WScriptSleep 200

WshShellSendKeys "n"

WScriptSleep 200

WshShellSendKeys "D"

WScriptSleep 200

WshShellSendKeys "o"

WScriptSleep 200

WshShellSendKeys "s"

WScriptSleep 200

WshShellSendKeys "%S"

WScriptSleep 500

WshShellSendKeys "%FX"

例子5:自动定时存盘的记事本(此脚本来自网上)

'第一部分:定义变量和对象

Dim WshShell, AutoSaveTime, TXTFileName

AutoSaveTime=(1000601) '自动存盘时间为1分钟

Set WshShell=WScriptCreateObject("WScriptShell")

TXTFileName=InputBox("给文本起名(不能用中文和纯数字):")

'第二部分:打开并激活记事本

WshShellRun "notepad"

WScriptSleep 200

WshShellAppActivate "无标题 - 记事本"

'第三部分:用输入的文件名存盘

WshShellSendKeys "^s"

WScriptSleep 300

WshShellSendKeys TXTFileName

WScriptSleep 300

WshShellSendKeys "%s"

WScriptSleep AutoSaveTime

'第四部分:自动定时存盘

While WshShellAppActivate (TXTFileName)=True

WshShellSendKeys "^s"

WScriptSleep AutoSaveTime

Wend

WScriptQuit

例子:

set objShell = CreateObject("WscriptShell")

strCommandLine = "psetup755281exe" '启动安装程序

objShellRun(strCommandLine)

set WshShell = CreateObject("WScriptShell")

WScriptSleep 2000 '延时3秒

WshShellSendKeys "{ENTER}" '模拟按下回车键执行下一步

WScriptSleep 300 '延时3秒

WshShellSendKeys "{ENTER}" '模拟按下回车键执行下一步

WScriptSleep 300 '延时3秒

WshShellSendKeys "{ENTER}" '模拟按下回车键执行下一步

WScriptSleep 5200 '延时3秒

WshShellSendKeys "{ENTER}" '模拟按下回车键执行下一步

WScriptSleep 300 '延时3秒

WshShellSendKeys "{ENTER}" '模拟按下回车键执行下一步

WScriptSleep 300 '延时3秒

WshShellSendKeys "{ENTER}" '模拟按下回车键执行下一步

WScriptSleep 200

WshShellSendKeys " " '模拟按下空格键去除安装百度超级搜霸一行前的√号

WScriptSleep 100

WshShellSendKeys "{TAB}" '模拟按下 Tab 键选择安装项目

WScriptSleep 200

WshShellSendKeys " " '模拟按下空格键去除安装百度超级搜霸一行前的√号

WScriptSleep 200 '延时03秒

WshShellSendKeys "f" '模拟按下 F键同意协议

一楼不要胡乱回复,那是VBS吗?坑爹呀!!

这是VBS代码:

N = InputBox("请输入进程名称")

Set wmi = GetObject("winmgmts:\\\root\cimv2")

Set ps = wmiExecQuery("select from win32_process where name="&"'"&N&"'")

For Each p In ps

pGetOwner user, domain

MsgBox " notepad的进程的用户名是 " & user '&"," & domain

Next

Set objShell = CreateObject("WscriptShell") 

strCommandLine = "kugou2012exe"        '启动安装程序

objShellRun(strCommandLine)

set WshShell = CreateObject("WScriptShell")

WshShellAppActivate "酷狗音乐2012安装程序" 

WScriptSleep 5000        '延时5秒

WshShellSendKeys "{ENTER}"        '模拟按下回车键执行下一步 

WScriptSleep 1000        '延时1秒

WshShellSendKeys "{ENTER}"        '模拟按下回车键执行下一步

WScriptSleep 20000        '延时20秒 等待安装完成

WshShellSendKeys "{ENTER}"        '模拟按下回车键执行下一步

vbs脚本,批处理也是调用vbs来实现

不一定通用,因为不同版本的软件安装界面不同照着修改吧

其实用autoit来做会比较简单,而且autoit功能更多

vbs当然可以调用其他程序的对象,例如:

说明:下面的对象也是我在网上搜索的,你要是对其中的某项感兴趣可以自己搜索其属性方法。

例如,以“ADODBConnection”为关键字搜索。

AutoItX3Control

ADO对象(太常用了):

ServerCreateObject("ADODBConnection")

ServerCreateObject("ADODBCommand")

ServerCreateObject("ADODBRecordSet")

ServerCreateObject("ADODBRecord")

ServerCreateObject("ADODBStream")

ASP支持的对象太多了,你可以自己写COM组件,下面是一些常使用的:

ServerCreateObject("MicrosoftXML>

以上就是关于请问使用VBS调用WMI获取当前系统版本(不是版本号,是类似 Windows 7 专业版 这种字符串)要如何做全部的内容,包括:请问使用VBS调用WMI获取当前系统版本(不是版本号,是类似 Windows 7 专业版 这种字符串)要如何做、谁能给个思路,用VBS或批处理做一个软件自动安装管理器、VBS获取系统进程的用户名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9476187.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存