我想检测当前运行的bat脚本是否被调用者隐藏,这意味着(nCmdShow=0)例如。
有一个windows API来获取这个信息,GetStartupInfo,但是它不能被命令提示符或VBScript调用(没有第三方库)。
下面的脚本可以检索启动信息,但问题是这只能在WinXp下工作,它不能在Win7下工作。我正在寻找一种方法可以支持跨winxp - win8。
Dim wmiService
Set wmiService = GetObject("winmgmts:\.rootcimv2")
Dim startupInfo
Set startupInfo = wmiService.Get("Win32_ProcessStartup")
下面的代码在xp下可以正常工作,但在win7下不能工作,它显示了所有的启动信息
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\" & strComputer & "rootcimv2")
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。
appactivate在多个Internet explorer实例之间
由于名称冲突,给出的示例在7及以后不能工作。将sendmail重命名为其他值
如果有限用户需要手动添加注册表项到hkcusoftwareclasses.