在VBScript中判断程序是否激活,可以通过执行Windows Management Instrumentation (WMI) 查询来实现。以下是一个示例代码,用于检查特定的程序(例如 `BstkSVC.exe`)是否已经启动:
```vbscript
Option Explicit
Dim objWMIService, colProcess, programName, result
programName = "程序.exe" ' 替换为你要检查的程序名称
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colProcess = objWMIService.ExecQuery("Select * from Win32_Process Where Name = '" & programName & "'")
result = "未启动"
If colProcess.Count = 0 Then
WScript.Echo "程序未启动"
' 如果程序未启动,可以选择重新启动计算机
Set objShell = CreateObject("WScript.Shell")
objShell.Run "shutdown -r -t 0", 0, True
Else
WScript.Echo "程序已启动"
result = "已启动"
End If
WScript.Echo "程序状态: " & result
WScript.Quit
```
这个脚本通过WMI查询 `Win32_Process` 类来检查指定的程序是否在运行。如果查询结果为空(即 `colProcess.Count = 0`),则表示程序未启动,并且可以选择重新启动计算机。如果程序已启动,则脚本会输出相应的信息。
如果你想要检查Windows操作系统是否激活,可以使用 `slmgr.vbs` 命令行工具。以下是一个示例VBScript代码,用于检查Windows 10是否永久激活:
```vbscript
Option Explicit
Dim objShell, result
Set objShell = CreateObject("WScript.Shell")
result = objShell.Run("slmgr.vbs -xpr", 0, True)
If result = 0 Then
WScript.Echo "计算机已永久激活"
Else
WScript.Echo "计算机未永久激活"
End If
WScript.Quit
```
这个脚本通过执行 `slmgr.vbs -xpr` 命令来检查操作系统的激活状态。如果返回值为0,则表示计算机已永久激活;否则,表示计算机未永久激活。
请注意,这些脚本需要在具有相应权限的环境下运行,例如以管理员身份运行。