![]() |
Registryschlüssel mit VBSkript löschen
Alternativ zu dem Batch-Skript
![]()
Code:
Aber das will nicht so recht. SubKeys ist ein Array mit den Unterschlüsseln. Aber wie bekomme ich raus, ob es leer ist oder nicht?
const HKEY_CURRENT_USER = &H80000001
Path = "SOFTWARE\z" Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv") objReg.DeleteKey HKEY_CURRENT_USER, Path & "\Test" objReg.EnumKey HKEY_CURRENT_USER, Path, SubKeys If IsEmpty(SubKeys) Then MsgBox "Leer" objReg.DeleteKey HKEY_CURRENT_USER, Path End If |
Re: Registryschlüssel mit VBSkript löschen
Zitat:
Code:
dann kannst du ermitteln ob dein wert in der Collection existiert.
If Not IsInCollection(MyClass, SubKeys) Then
MyClass.Add Path, SubKeys End if
Code:
tritt der entgegengesetzte fall ein dann ist SubKeys nicht leer.
For Each Path In MyClass
If Path.name = SubKeys Then MyClass.Remove SubKeys Exit For End If Next Path gruss |
Re: Registryschlüssel mit VBSkript löschen
Danke für die Hilfe, aber ich weiß nicht, ob der Code das macht, was er soll. Ich habe in der Registry meinen Schlüssel (HKCU\Software\MichaelPuff), in dem meine Programme ihre Einstellungen reinschreiben in Unterschlüssel mit dem Programmnamen. Das VBSkript soll jetzt einen Unterschlüssel löschen, zum Beispiel von Programm "X". Und dann soll der Schlüssel "MichaelPuff" nur dann entfernt werden, wenn er leer ist und nicht alle anderen Unterschlüssel von den anderen Programmen auch.
Aber es muss doch einen Möglichkeit in VBSckript geben, um zu überprüfen, ob ein Array leer ist oder nicht, ohne es erst in einer Collection zusammen zu fassen. |
Re: Registryschlüssel mit VBSkript löschen
Ein Beispiel!
Registrykey lesen
Code:
Registrykey speichern
' Gibt den Wert des Schlüssels aus "Path" zurück
Public Function RegRead(Path As String) As String Dim ws As Object On Error GoTo ErrHandler Set ws = CreateObject("WScript.Shell") RegRead = ws.RegRead(Path) Exit Function ErrHandler: RegRead = "" End Function
Code:
Registrykey löschen
' Schreibt den Wert aus "Value" als den Typ aus "Typ"
' in den in "Path" angegebenen Schlüssel Public Function RegWrite(ByVal Path As String, _ ByVal Value As String, _ Optional ByVal Typ As String = "REG_SZ") As Boolean Dim ws As Object On Error Goto ErrHandler Set ws = CreateObject("WScript.Shell") ws.RegWrite Path, Value, Typ RegWrite = True Exit Function ErrHandler: RegWrite = False End Function
Code:
Vielleicht hilft dir davon etwas weiter..
' Löscht den Schlüssel aus "Path"
Public Function RegDelete(Path As String) As Boolean Dim ws As Object On Error Goto ErrHandler Set ws = CreateObject("WScript.Shell") ws.RegDelete Path RegDelete = True Exit Function ErrHandler: RegDelete = False End Function Du mußt halt dann dein array dementsprechend nur noch spliten um den wert den du erfahren willst zu ermitteln. Hier noch ein link der dir weiterhelfen könnte! ![]() gruss |
Re: Registryschlüssel mit VBSkript löschen
Ich probiere das zu Hause mal aus heute Abend.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz