http://dieseyer.de • all rights reserved • © 2011 v11.4
'*** v8.3 *** www.dieseyer.de *******************************
'
' Datei: kontext-erweiterungenanzeigen.vbs
' Autor: dieseyer@gmx.de
' Auf: www.dieseyer.de
'
' listet die RegKeys, die für die zusätzlichen Optionen
' des Kontextmenüs für Ordner (Klick mit der rechten
' Maus-Taste auf einen Ordner) zuständig sind.
'
'************************************************************
Option Explicit ' Siehe http://dieseyer.de/dse-wsh-lernen.html#OptionExpl
MsgBox Kontext( "." ), , WScript.ScriptName
LogEintrag Kontext( "." )
WScript.Quit
'*** v8.3 *** www.dieseyer.de *******************************
Function Kontext( PC )
'************************************************************
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKLM = &H80000002
Dim arrSubKeys, subkey, strValue, Tst
Dim oReg : Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & PC & "\root\default:StdRegProv")
Kontext = Kontext & "WindowsExplorer-Kontextmenü-Erweiterungen für Dateien:" & vbCRLF
oReg.EnumKey HKLM, "SOFTWARE\Classes\*\shell", arrSubKeys
For Each subkey In arrSubKeys
Kontext = Kontext & " " & subkey & vbTab
oReg.GetStringValue HKLM, "SOFTWARE\Classes\*\shell\" & subkey, ,strValue
Tst = strValue : If InStr( Tst, "&" ) > 0 Then Tst = Replace( Tst, "&", "" )
Kontext = Kontext & Tst & vbCRLF
Next
Kontext = Kontext & vbCRLF
Kontext = Kontext & "WindowsExplorer-Kontextmenü-Erweiterungen für Verzeichnisse:" & vbCRLF
oReg.EnumKey HKLM, "SOFTWARE\Classes\Folder\shell", arrSubKeys
For Each subkey In arrSubKeys
Kontext = Kontext & " " & subkey & vbTab
oReg.GetStringValue HKLM, "SOFTWARE\Classes\*\shell\" & subkey, ,strValue
Tst = strValue : If InStr( Tst, "&" ) > 0 Then Tst = Replace( Tst, "&", "" )
Kontext = Kontext & Tst & vbCRLF
Next
End Function ' Kontext()
'*** v8.3 *** www.dieseyer.de *******************************
Sub LogEintrag( LogTxt )
'************************************************************
Dim fso : Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Dim FileOut
Dim LogDateiX
On Error Resume Next
LogDateiX = LogDatei ' wurde die Variable LogDatei nicht außerhalb der Prozedur definiert
If Err.Number <> 0 Then LogDateiX = WScript.ScriptFullName & ".log"
On Error Goto 0
If LogTxt = "" Then ' eine neue .LOG-Datei wird erstellt, eine vorhandene überschrieben
Set FileOut = fso.OpenTextFile( LogDateiX, 2, true)
FileOut.Close
Set FileOut = Nothing
Set fso = Nothing
Exit Sub
End If
Set FileOut = fso.OpenTextFile( LogDateiX, 8, true)
If LogTxt = vbCRLF Then FileOut.WriteLine ( LogTxt )
' If not LogTxt = vbCRLF Then FileOut.WriteLine ( Now() & vbTab & LogTxt )
' If not LogTxt = vbCRLF Then FileOut.WriteLine ( Timer() & " " & LogTxt )
If not LogTxt = vbCRLF Then FileOut.WriteLine ( Now() & " " & LogTxt )
FileOut.Close
Set FileOut = Nothing
Set fso = Nothing
End Sub ' LogEintrag( LogTxt )
http://dieseyer.de • all rights reserved • © 2011 v11.4