【发布时间】:2014-05-24 17:38:26
【问题描述】:
我想检测当前运行的 bat 脚本是否被调用者隐藏,例如 (nCmdShow=0)。
有windows API GetStartupInfo 可以获取这些信息,但是不能通过命令提示符或VBScript(没有第三方库)调用。
下面的脚本可以获取启动信息,但问题是只能在WinXp下运行,在Win7下不行。我正在寻找一种可以跨winxp-win8支持的方法。
Dim wmiService
Set wmiService = GetObject("winmgmts:\\.\root\cimv2")
Dim startupInfo
Set startupInfo = wmiService.Get("Win32_ProcessStartup")
下面的代码在xp下可以正常工作,但是在win7下不行,它显示了所有的启动信息。
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_ProcessStartup",,48)
For Each objItem in colItems
Wscript.Echo "CreateFlags: " & objItem.CreateFlags
Wscript.Echo "EnvironmentVariables: " & objItem.EnvironmentVariables
Wscript.Echo "ErrorMode: " & objItem.ErrorMode
Wscript.Echo "FillAttribute: " & objItem.FillAttribute
Wscript.Echo "PriorityClass: " & objItem.PriorityClass
Wscript.Echo "ShowWindow: " & objItem.ShowWindow
Wscript.Echo "Title: " & objItem.Title
Wscript.Echo "WinstationDesktop: " & objItem.WinstationDesktop
Wscript.Echo "X: " & objItem.X
Wscript.Echo "XCountChars: " & objItem.XCountChars
Wscript.Echo "XSize: " & objItem.XSize
Wscript.Echo "Y: " & objItem.Y
Wscript.Echo "YCountChars: " & objItem.YCountChars
Wscript.Echo "YSize: " & objItem.YSize
Next
【问题讨论】:
标签: windows winapi batch-file vbscript startup