Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用vbscript或命令行检查当前windows命令提示符是否隐藏_Windows_Winapi_Batch File_Vbscript_Startup - Fatal编程技术网

如何使用vbscript或命令行检查当前windows命令提示符是否隐藏

如何使用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

我想检测当前运行的bat脚本是否被调用方隐藏,例如(nCmdShow=0)

有获取此信息的windows API GetStartupInfo,但命令提示符或VBScript(没有第三方库)无法调用它

下面的脚本可以检索启动信息,但问题是它只在WinXp下工作,在Win7下不工作。我正在寻找一种可以支持winxp-win8的方法。

暗色台钳
设置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不同。不过这是一个有趣的方法。