如何使用vbscript或命令行检查当前windows命令提示符是否隐藏
我想检测当前运行的bat脚本是否被调用方隐藏,例如(nCmdShow=0) 有获取此信息的windows API GetStartupInfo,但命令提示符或VBScript(没有第三方库)无法调用它 下面的脚本可以检索启动信息,但问题是它只在WinXp下工作,在Win7下不工作。我正在寻找一种可以支持winxp-win8的方法。如何使用vbscript或命令行检查当前windows命令提示符是否隐藏,windows,winapi,batch-file,vbscript,startup,Windows,Winapi,Batch File,Vbscript,Startup,我想检测当前运行的bat脚本是否被调用方隐藏,例如(nCmdShow=0) 有获取此信息的windows API GetStartupInfo,但命令提示符或VBScript(没有第三方库)无法调用它 下面的脚本可以检索启动信息,但问题是它只在WinXp下工作,在Win7下不工作。我正在寻找一种可以支持winxp-win8的方法。 暗色台钳 设置wmiService=GetObject(“winmgmts:\\.\root\cimv2”) Dim startupInfo 设置startupIn
暗色台钳
设置wmiService=GetObject(“winmgmts:\\.\root\cimv2”)
Dim startupInfo
设置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
有一种方法可以在VBS或批处理中调用API调用 尽管由于名称冲突,给出的示例在7及更高版本中不起作用。将sendmail重命名为7及更高版本的其他名称
如果用户有限,您需要手动将注册表项添加到hkcu\software\classes。实际上这是VB,与VBS不同。不过这是一个有趣的方法。