本帖最后由 jyswjjgdwtdtj 于 2023-3-16 20:58 编辑
可惜我级别不够 发布到教程区 那就只能发这里了- <html>
- <!--********************************************************************
- '*
- '* File: scriptomatic.hta
- '* Created: August 2002
- '* Version: 1.0
- '*
- '* Description: Learning tool. Enables users to generate and run
- '* WSH scripts (in VBScript) that use WMI to display
- '* properties available through the Win32_ classes.
- '*
- '*
- '* Copyright (C) 2002 Microsoft Corporation
- '*
- '********************************************************************-->
- <title>Windows .NET Server Resource Kit - Scriptomatic</title>
-
- <HTA:APPLICATION
- ID="objScriptomatic"
- APPLICATIONNAME="Scriptomatic"
- SCROLL="no"
- SINGLEINSTANCE="yes"
- WINDOWSTATE="normal"
- >
- <head>
-
- <style>
- BODY
- {
- background-color: buttonface;
- font-family: Helvetica;
- font-size: 8pt;
- margin-top: 10px;
- margin-left: 10px;
- margin-right: 10px;
- margin-bottom: 10px;
- }
-
-
- .button
- {
- font-family: Helvetica;
- font-size: 8pt;
- width: 35px;
- }
-
- textarea
- {
- font-family: arial;
- font-size: 8pt;
- margin-left: 3px;
- }
-
- select
- {
- font-family: arial;
- font-size: 8pt;
- width: 450px;
- margin-left: 0px;
- }
-
- </style>
-
- <script language="vbscript">
- Sub window_Onload
- self.ResizeTo 1,1
- self.MoveTo 300,300
- Const adVarChar = 200
- Const MaxCharacters = 255
- strComputer = "."
-
- Set rsDataList = CreateObject("ADODB.Recordset")
- rsDataList.Fields.Append "ClassName", adVarChar, MaxCharacters
- rsDataList.Open
-
- Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
- For Each objclass in objWMIService.SubclassesOf()
- bIsQualifier = False
- If UCase(Left(objClass.Path_.Class,5)) = "WIN32" Then
- For Each Qualifier in objClass.Qualifiers_
- If UCase(Trim(Qualifier.Name)) = "ASSOCIATION" Then
- bIsQualifier = True
- End If
- Next
- If bIsQualifier = False Then
- rsDataList.AddNew
- rsDataList("ClassName") = objClass.Path_.Class
- rsDataList.Update
- End If
- End If
- Next
-
- rsDataList.Sort = "ClassName"
- rsDataList.MoveFirst
- strHTML = "<select onChange=""ComposeCode()"" name=ClassesPulldown>" &_
- "<option value=""ulldownMessage"">Begin by selecting a class"
- Do Until rsDataList.EOF
- strHTML = strHTML & "<option value= " & chr(34) &_
- rsDataList.Fields.Item("ClassName") & chr(34) &_
- ">" & rsDataList.Fields.Item("ClassName")
- rsDataList.MoveNext
- Loop
- strHTML = strHTML & "</select>"
- wmi_classes.insertAdjacentHTML "beforeEnd", strHTML
- self.Focus()
- self.ResizeTo 670,550
- self.MoveTo 200,200
- run_button.disabled = false
-
- End Sub
- Sub ComposeCode
- If ClassesPulldown.Value = "ulldownMessage" Then
- run_button.disabled = True
- Exit Sub
- End If
-
- strComputer = "."
- Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
- Set objClass = objWMIService.Get(ClassesPulldown.Value)
- strHTML = "<textarea cols=100 rows=30>"
- strHTML = strHTML & "On Error Resume Next" & Chr(10)
- strHTML = strHTML & "strComputer = " & chr(34) & "." & chr(34) & Chr(10)
- strHTML = strHTML & "Set objWMIService = GetObject(" & chr(34) & "winmgmts:\\" & chr(34) & " & strComputer & " & chr(34) & "\root\cimv2" & chr(34) & ")" & Chr(10)
- strHTML = strHTML & "Set colItems = objWMIService.ExecQuery(" & chr(34) & "Select * from " & ClassesPulldown.value & chr(34) & ",,48)" & Chr(10)
- strHTML = strHTML & "For Each objItem in colItems" & Chr(10)
- For Each objProperty in objClass.properties_
- strHTML = strHTML & " Wscript.Echo " & chr(34) & objProperty.name & ": " & chr(34) & " & " & "objItem." & objProperty.name & Chr(10)
- Next
- strHTML = strHTML & "Next" & "</textarea>"
- code.InnerHTML= strHTML
- run_button.disabled = False
-
- End Sub
- Sub RunScript
- Set objFS = CreateObject("Scripting.FileSystemObject")
- strtmpname="temp_script.vbs"
- Set objScript = objFS.CreateTextFile(strTmpName,true,true)
- objScript.Writeline code.InnerText
- objScript.Close
- Set objShell = CreateObject("WScript.Shell")
- objShell.Run("cmd /k cscript.exe //nologo "&strtmpname)
- sleep 100
- objfs.deletefile(strtmpname)
- End Sub
-
- Sub QuitScript
-
- On Error Resume Next
- Set objFSO = CreateObject("Scripting.FileSystemObject")
- objFSO.DeleteFile "temp_script.vbs"
- Set objFSO = Nothing
- self.Close()
-
- End Sub
-
-
- </script>
- <script language="javascript">
- function sleep(delay) {
- for(var t = Date.now(); Date.now() - t <= delay;);
- }
- </script>
- </head>
-
-
- <body>
- <table>
- <td>
- <span id="wmi_classes"> </span>
- <input id=runbutton class="button" type="button" value="Run" name="run_button" onClick="RunScript()">
- <input id=quitbutton class="button" type="button" value="Quit" name="quit_button" onClick="QuitScript()">
- <div ID=code_header></div>
- <div id="code"></div>
- </td>
- </tr>
- </table>
- </body>
- </html>
复制代码 保存为scriptomatic.hta
02年的啊
为了不超过10000个字符 删了所有的注释……
有点问题 修了一下 |