[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[转贴] 学习wmi的好帮手之微软官方wmi.hta

本帖最后由 jyswjjgdwtdtj 于 2023-3-16 20:58 编辑

可惜我级别不够 发布到教程区 那就只能发这里了
  1. <html>
  2. <!--********************************************************************
  3. '*
  4. '*  File:           scriptomatic.hta
  5. '*  Created:        August 2002
  6. '*  Version:        1.0
  7. '*
  8. '*  Description:    Learning tool. Enables users to generate and run
  9. '*                  WSH scripts (in VBScript) that use WMI to display
  10. '*                  properties available through the Win32_ classes.      
  11. '*
  12. '*
  13. '* Copyright (C) 2002 Microsoft Corporation
  14. '*
  15. '********************************************************************-->
  16. <title>Windows .NET Server Resource Kit - Scriptomatic</title>
  17. <HTA:APPLICATION
  18.      ID="objScriptomatic"
  19.      APPLICATIONNAME="Scriptomatic"
  20.      SCROLL="no"
  21.      SINGLEINSTANCE="yes"
  22.      WINDOWSTATE="normal"
  23. >
  24. <head>
  25. <style>
  26. BODY
  27. {
  28.    background-color: buttonface;
  29.    font-family: Helvetica;
  30.    font-size: 8pt;
  31.    margin-top: 10px;
  32.    margin-left: 10px;
  33.    margin-right: 10px;
  34.    margin-bottom: 10px;
  35. }
  36. .button
  37. {
  38.    font-family: Helvetica;
  39.    font-size: 8pt;
  40.    width: 35px;
  41. }
  42. textarea
  43. {
  44.    font-family: arial;
  45.    font-size: 8pt;
  46.    margin-left: 3px;
  47. }
  48. select
  49. {
  50.    font-family: arial;
  51.    font-size: 8pt;
  52.    width: 450px;
  53.    margin-left: 0px;
  54. }
  55. </style>
  56. <script language="vbscript">
  57. Sub window_Onload
  58.    self.ResizeTo 1,1
  59.    self.MoveTo 300,300
  60.    Const adVarChar = 200
  61.    Const MaxCharacters = 255
  62.    strComputer = "."
  63.    
  64.    Set rsDataList = CreateObject("ADODB.Recordset")
  65.    rsDataList.Fields.Append "ClassName", adVarChar, MaxCharacters
  66.    rsDataList.Open
  67.    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
  68.    For Each objclass in objWMIService.SubclassesOf()
  69.       bIsQualifier = False
  70.       If UCase(Left(objClass.Path_.Class,5)) = "WIN32" Then
  71.          For Each Qualifier in objClass.Qualifiers_
  72.             If UCase(Trim(Qualifier.Name)) = "ASSOCIATION" Then
  73.                bIsQualifier = True
  74.             End If
  75.          Next
  76.          If bIsQualifier = False Then
  77.             rsDataList.AddNew
  78.             rsDataList("ClassName") = objClass.Path_.Class
  79.             rsDataList.Update
  80.          End If
  81.       End If
  82.    Next
  83.    rsDataList.Sort = "ClassName"
  84.    rsDataList.MoveFirst
  85.    strHTML = "<select onChange=""ComposeCode()"" name=ClassesPulldown>" &_
  86.              "<option value=""ulldownMessage"">Begin by selecting a class"
  87.    Do Until rsDataList.EOF
  88.       strHTML = strHTML & "<option value= " & chr(34) &_
  89.       rsDataList.Fields.Item("ClassName") & chr(34) &_
  90.       ">" & rsDataList.Fields.Item("ClassName")
  91.       rsDataList.MoveNext
  92.    Loop
  93.    strHTML = strHTML & "</select>"
  94.    wmi_classes.insertAdjacentHTML "beforeEnd", strHTML
  95.    self.Focus()
  96.    self.ResizeTo 670,550
  97.    self.MoveTo 200,200
  98.       run_button.disabled = false
  99. End Sub
  100. Sub ComposeCode
  101.    If ClassesPulldown.Value = "ulldownMessage" Then
  102.       run_button.disabled = True
  103.       Exit Sub
  104.    End If
  105.    strComputer = "."
  106.    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
  107.    Set objClass = objWMIService.Get(ClassesPulldown.Value)
  108.    strHTML = "<textarea cols=100 rows=30>"
  109.    strHTML = strHTML & "On Error Resume Next" & Chr(10)
  110.    strHTML = strHTML & "strComputer = " & chr(34) & "." & chr(34) & Chr(10)
  111.    strHTML = strHTML & "Set objWMIService = GetObject(" & chr(34) & "winmgmts:\\" & chr(34) & " & strComputer & " & chr(34) & "\root\cimv2" & chr(34) & ")" & Chr(10)
  112.    strHTML = strHTML & "Set colItems = objWMIService.ExecQuery(" & chr(34) & "Select * from " & ClassesPulldown.value & chr(34) & ",,48)" & Chr(10)
  113.    strHTML = strHTML & "For Each objItem in colItems" & Chr(10)
  114.    For Each objProperty in objClass.properties_
  115.       strHTML = strHTML & "    Wscript.Echo " & chr(34) & objProperty.name & ": " & chr(34) & " & " & "objItem." & objProperty.name & Chr(10)
  116.    Next
  117.    strHTML = strHTML & "Next" & "</textarea>"
  118.    code.InnerHTML= strHTML
  119.    run_button.disabled = False
  120. End Sub
  121. Sub RunScript
  122.    Set objFS = CreateObject("Scripting.FileSystemObject")
  123.    strtmpname="temp_script.vbs"
  124.    Set objScript = objFS.CreateTextFile(strTmpName,true,true)
  125.    objScript.Writeline code.InnerText
  126.    objScript.Close
  127.    Set objShell = CreateObject("WScript.Shell")
  128.    objShell.Run("cmd /k cscript.exe //nologo "&strtmpname)
  129.    sleep 100
  130.    objfs.deletefile(strtmpname)
  131. End Sub
  132. Sub QuitScript
  133.    On Error Resume Next
  134.    Set objFSO = CreateObject("Scripting.FileSystemObject")
  135.    objFSO.DeleteFile "temp_script.vbs"
  136.    Set objFSO = Nothing
  137.    self.Close()
  138. End Sub
  139. </script>
  140. <script language="javascript">
  141. function sleep(delay) {
  142.     for(var t = Date.now(); Date.now() - t <= delay;);
  143. }
  144. </script>
  145. </head>
  146. <body>
  147. <table>
  148.    <td>
  149.       <span id="wmi_classes"> </span>
  150.       <input id=runbutton  class="button" type="button" value="Run"  name="run_button"  onClick="RunScript()">
  151.       <input id=quitbutton class="button" type="button" value="Quit" name="quit_button" onClick="QuitScript()">
  152.       <div ID=code_header></div>
  153.       <div id="code"></div>
  154.    </td>
  155. </tr>
  156. </table>
  157. </body>
  158. </html>
复制代码
保存为scriptomatic.hta
02年的啊
为了不超过10000个字符 删了所有的注释……
有点问题 修了一下
角元塞瓦解决角格点问题的通解

返回列表