home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 February / PCWorld_2006-02_cd.bin / software / vyzkuste / spioni / spioni.exe / pcwProcview.z.exe / pcwProcview.HTA
Text File  |  2005-06-02  |  10KB  |  157 lines

  1. <HTML>
  2. <HEAD>
  3. <TITLE>PC-WELT Script: Laufende 32-Bit Programme
  4. </TITLE>
  5. <HTA:APPLICATION ID="PCW32BitProcessViewer" APPLICATIONNAME="PCW32BitProcessViewer" BORDER="normal" CAPTION="yes" SHOWINTASKBAR="yes" SINGLEINSTANCE="yes" SYSMENU="yes" WINDOWSTATE="normal" SCROLL="NO" SCROLLFLAT="no" VERSION="1.0" INNERBORDER="no" SELECTION="yes" MAXIMIZEBUTTON="no" MINIMIZEBUTTON="yes" NAVIGABLE="No" CONTEXTMENU="yes" BORDERSTYLE="normal" ICON="%WINDIR%\kill.exe"/>
  6. <STYLE type="text/css">
  7. body { font-family:Tahoma,Verdana,Arial,Geneva;font-size:14;background-color:scrollbar; }    
  8. </STYLE>
  9. </HEAD>
  10. <SCRIPT LANGUAGE="VBScript">
  11. Dim NoKillList
  12. Set WSHShell = CreateObject("WScript.Shell")
  13. '==================================================================================
  14. 'Es folgt eine Array als Liste von Prozessnamen, die Sie nicht beenden dⁿrfen, da ansonsten
  15. 'das System instabil wird, oder vor einem Reboot gar nicht mehr zu gebrauchen ist.
  16. 'Wenn Sie das Verbot st÷rt, dann ersetzen Sie das Array einfach damit:
  17. 'NoKillList = Array("foo","bar")
  18. '==================================================================================    
  19.     
  20. NoKillList = Array(    "WINLOGON.EXE",_
  21.             "SERVICES.EXE",_    
  22.             "CSRSS.EXE",_
  23.             "LSASS.EXE",_
  24.             "SMSS.EXE",_
  25.             "WINMGMT.EXE",_
  26.             "KERNEL32.DLL",_
  27.             "WMIEXE.EXE")
  28.             
  29. '==================================================================================
  30. 'Diese Funktion sorgt fⁿr die Fenstergr÷sse und aktualisiert nach einem Druck auf
  31. '<F5> die Ansicht. Wird von "onload" im BODY-Tag aufgerufen.
  32. '==================================================================================
  33. Function fInit_Fenster()
  34.   window.resizeTo 548, 546
  35.   fProcView()
  36. End Function
  37.  
  38. '==================================================================================
  39. 'Bei einem Druck auf <F5> ruft diese Funktion eine kurze Hilfestellung in einer
  40. 'MsgBox auf. Der Inhalt einer MsgBox ist begrenzt, bei lΣngeren Hilfetexten wΣre
  41. 'stattdessen ein HTML-Element in der HTA-OberflΣche angebracht.
  42. '==================================================================================    
  43. Function fZeige_Hilfe()
  44.   Hilfe = Msgbox("Dieses HTA-Script ist eine Alternative zum Taskmanager von Windows. Es zeigt alle laufenden Programme an, hinter " & Chr(34) & "Name:" & Chr(34) & "sehen Sie den Programmnamen und hinter " & Chr(34) & "Pfad:" & Chr(34) & " den exakten Programmpfad. Ein Klick auf den Button " & Chr(34) & "Google.." & Chr(34) & " startet automatisch eine Suche nach dem jeweiligen Programmnamen bei www.google.de. Die Ergebnisse der Suche prΣsentiert Ihnen dann der Internet Explorer, sofern eine Internet-Verbindung besteht. Ein Klick auf den Button " & Chr(34) & "Explorer" & Chr(34) & " ÷ffnet das Verzeichnis, in dem das laufende Programm liegt. Beachten Sie, dass diese HTA nach dem Internet Explorer 6 verlangt.",64,"PC-Welt Script: Laufende Programme               Hilfe")
  45. End Function
  46.  
  47. '==================================================================================
  48. 'Wird der Button "Explorer" gedrⁿckt, navigiert der Windows Explorer zur gewΣhlten
  49. 'Datei und markiert sie automatisch. Diese Funktion klapp allerdings nur, wenn im
  50. 'Windows Explorer keine Web-Folder aktiviert sind, sondern herk÷mmliche Ordner.
  51. '==================================================================================    
  52. Function fGoToExplorer(strPfad)
  53.   WSHShell.Run "explorer.exe /select," & Chr(34) & strPfad & Chr(34)
  54. End Function
  55.  
  56. Function fFileinfo(strPfad)
  57.   strPfad = Replace(strPfad,"\","\\") 'doppelter Backslash
  58.   Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
  59.   Set colFiles = oWMI.ExecQuery("SELECT * FROM CIM_Datafile WHERE Name = '" & strPfad &"'")
  60.   For Each objFile in colFiles
  61.     'strproperties = strproperties & "Name: " & vbtab & vbtab & objFile.Name & Chr(10)
  62.     'strproperties = strproperties & "Beschreibung: " & vbtab & objFile.Description & Chr(10)
  63.     strproperties = strproperties & "Dateityp: " & vbtab & objFile.FileType & Chr(10)
  64.     strproperties = strproperties & "Hersteller: " & vbtab& objFile.Manufacturer & Chr(10)
  65.     strproperties = strproperties & "Version: " & vbtab & vbtab & objFile.Version & Chr(10)
  66.     strproperties = strproperties & "Letzte ─nderung: " & vbtab & mid(objFile.LastModified,7,2) & "/" & mid(objFile.LastModified,5,2) & "/" & mid(objFile.LastModified,1,4) & " - " & mid(objFile.LastModified,9,2) & ":" & mid(objFile.LastModified,11,2) & ":" & mid(objFile.LastModified,13,2) & Chr(10)  
  67.   Next
  68.   MsgBox strproperties,0,"PC-WELT Script: pcwProcview.HTA"
  69. End Function
  70.  
  71. Function fSearch(W32Prozess)
  72.   WSHShell.Run "http://www.google.de/search?q=%22" & W32Prozess & "%22&ie=ISO-8859-1&hl=de&btnG=Google-Suche&meta=lr%3Dlang_de"
  73. End Function
  74.  
  75.  
  76. Function fKill(W32Prozess)
  77.   Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate,(debug)}")
  78.   Prozesse = "select * from win32_process where name = '" & W32Prozess & "'"
  79.   Set Task = oWMI.ExecQuery(Prozesse)
  80.     counter = 0
  81.     For Each Prozess In Task
  82.       counter = counter + 1
  83.     Prozess.Terminate 0
  84.     Next
  85.     grammar = "en"
  86.     If counter = 1 Then grammar = ""
  87.     MsgBox counter & " Instanz" & grammar & " von " & Chr(34) & UCase(W32Prozess) & Chr(34) & " geschlossen!",64,"PC-Welt Script: Task Killer"
  88. End Function
  89.  
  90. '==================================================================================
  91. 'Diese Funktion schreibt die Prozesse aus der WMI in eine Tabelle:
  92. '==================================================================================    
  93. Function fProcView()
  94.   On Error Resume Next
  95.   Set ProcessConfig= GetObject("winmgmts:{impersonationLevel=impersonate,(debug)}").InstancesOf("Win32_Process")
  96.   StrBeginTable = "<table border=1 cellspacing=0 cellpadding=1 style=" & Chr(34) & "font-size:12;" & Chr(34)&">"
  97.   For Each Process In ProcessConfig
  98.     For each Prop in Process.Properties_
  99.       If Prop.Name = "Caption" And (Not Prop.Value = "System") And (Not Prop.Value = "System Idle Process") Then
  100.     'HTML code for the "Google" button:
  101.     StrButton1 = "<Input Type=" & Chr(34) & "button" & Chr(34) &_
  102.              "Title=" & Chr(34) & "Nach " & Chr(39) & Prop.Value & Chr(39) & " bei Google suchen" & Chr(34) &_
  103.              "Value=" & Chr(34) & "Google" & Chr(34) &_
  104.              "OnClick=" & Chr(34) & "fSearch(" & Chr(39) & Prop.Value & Chr(39) & ")" & Chr(34) &_
  105.              "Style=" & Chr(34) & "font-size:12;background-color=buttonhighlight" & Chr(34) &"/>"
  106.     'HTML code for the "Beenden" button:
  107.     StrButton3 = "<Input Type=" & Chr(34) & "button" & Chr(34) &_
  108.              "OnClick=" & Chr(34) & "fKill(" & Chr(39) & Prop.Value & Chr(39) & ")" & Chr(34) &_
  109.              "Title=" & Chr(34) & "Den Prozess " & Chr(39) & Prop.Value & Chr(39) & " abschie▀en" & Chr(34) &_
  110.              "Name=" & Chr(34) & "KillButton" & Chr(34) &_
  111.              "Value=" & Chr(34) & "Beenden" & Chr(34) &_
  112.              "Style=" & Chr(34) & "font-size:12" & Chr(34) & "/>"
  113.     arraycount=0
  114.     Do
  115.       If NoKillList(arraycount) = UCase(Prop.Value) Then StrButton3=""
  116.       arraycount = arraycount+1
  117.     Loop until arraycount > Ubound(NoKillList)
  118.     StrTableData = StrTableData + "<tr style=" & Chr(34) & "font-size:12;background-color=buttonhighlight" & Chr(34) & "><td><b>Name: </b></td><td>" &  UCase(Prop.Value) & "</td><td>" & StrButton1
  119.       End If
  120.       If (Prop.Name = "ExecutablePath") And Not (IsNull(Prop.Value)) Then
  121.     StrProcessName = Prop.Value
  122.     'HTML code for the "Explorer" button:
  123.     StrButton4 = "<Input Type=" & Chr(34) & "button" & Chr(34) &_
  124.              "OnClick=" & Chr(34) & "fFileinfo(" & Chr(39) & strProcessName & Chr(39) & ")" & Chr(34) &_
  125.              "Title=" & Chr(34) & "Datei-Infos zu " & Chr(39) & strProcessName & Chr(39) & " anzeigen" & Chr(34) &_
  126.              "Name=" & Chr(34) & "InfoButton " & Chr(34) & " Value=" & Chr(34) & "Datei-Info" & Chr(34) &_
  127.              "Style=" & Chr(34) & "font-size:12;background-color=buttonhighlight" & Chr(34) &"/>"
  128.     StrButton2 = "<Input Type=" & Chr(34) & "button" & Chr(34) &_
  129.              "OnClick=" & Chr(34) & "fGotoExplorer(" & Chr(39) & strProcessName & Chr(39) & ")" & Chr(34) &_
  130.              "Title=" & Chr(34) & "Mit dem Windows Explorer zum Pfad " & Chr(39) & Prop.Value & Chr(39) & " gehen" & Chr(34) &_
  131.              "Name=" & Chr(34) & "ExplorerButton " & Chr(34) & " Value=" & Chr(34) & "Explorer" & Chr(34) &_
  132.              "Style=" & Chr(34) & "font-size:12" & Chr(34) &"/>"
  133.     StrTableData = StrTableData & StrButton4 & "</td></tr><tr><td><b>Pfad: </b></td><td>" & UCase(Prop.Value) & "</td><td>" & StrButton2 & StrButton3 & "</td></tr>"
  134.       End If
  135.     Next
  136.   Next
  137.   StrEndTable = "</FORM>"
  138.   document.all.tableProzessListe.innerHTML = StrBeginTable & StrTableData & StrEndTable & "<tr><th colspan=" & Chr(34) & "3" & Chr(34) & "></th></tr>"
  139. End Function
  140.  
  141. '==================================================================================
  142. 'Ende des Script-Teils, es folgt nur noch der Body, mit einem Span-Element, das dann 
  143. 'v÷llig dynamisch ⁿber seine "innerHTML"-Eigenschaft von den oben stehenden Funktionen
  144. 'mit HTML gefⁿllt wird.
  145. '==================================================================================
  146. </SCRIPT>
  147. <BODY onload="fInit_Fenster()" onhelp = "fZeige_Hilfe()">
  148. <FORM>
  149. <FIELDSET><LEGEND><B>Laufende 32-Bit Programme und Prozesse:</B></LEGEND>
  150. <Div id=tableProzessListe STYLE="overflow:scroll; height:450;">
  151. <TABLE><TR><TD><B>Die WMI wird abgefragt...</B><BR>Dieses HTA-Script ist ein Frontend fⁿr den Taskmanager von Windows. Damit es funktioniert, muss die "Windows Management Instrumentation" (WMI) installiert sein. Windows ME, 2000 und XP bringen die WMI standardmΣssig mit. Wenn Sie ein Σlteres Windows einsetzen, mⁿssen Sie die WMI herunterladen und installieren, bevor Sie dieses Script verwenden k÷nnen. Zum kostenlosen Download der WMI von Microsoft geht es <a href="http://msdn.microsoft.com/msdn-files/027/001/576/Search.asp"> hier</a> (ca. 6,7 MB). WΣhlen Sie auf dieser Download-Seite von Microsoft die deutsche Version der WMICORE.EXE fⁿr Windows NT/95/98 aus. Nach dem Download startet ein Doppelklick auf WMICORE.EXE die Installation.</TD></TR></TABLE>
  152.  </Div>
  153. </FIELDSET>
  154. </FORM>
  155. </BODY>
  156. </HTML>
  157.