【问题标题】:How to check the current windows command prompt is hidden by using vbscript or command lines如何使用 vbscript 或命令行检查当前 windows 命令提示符是否隐藏
【发布时间】: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


    【解决方案1】:

    有一种方法可以在 VBS 或批处理中调用 API。

    appactivate between multiple internet explorer instances

    尽管由于名称冲突,给出的示例在 7 及更高版本中不起作用。将 sendmail 重命名为 7 及更高版本的其他名称。

    如果是受限用户需要手动添加注册表项到hkcu\software\classes。

    【讨论】:

    • 其实就是VB,和VBS不是一回事。不过方法很有趣。
    猜你喜欢
    • 2015-12-11
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-13
    • 1970-01-01
    • 2012-11-20
    • 2015-09-13
    相关资源
    最近更新 更多