www.IT-Visions.de-Diskussionsforen (Version 2.1)
(Diese Seite wurde noch nicht auf das neue Layout umgestellt!)


Diese Foren stehen den Lesern unserer Bücher und allen anderen registrieren Benutzern dieser Website zur Verfügung. Wir würden uns freuen, wenn viele Nutzer dieser Website hier nicht nur Fragen stellen, sondern auch die Fragen anderer Nutzer beantworten. Diese Foren sind ein ehrenamtlicher, nicht-kommerzieller, unmoderierter Community-Dienst von www.IT-Visions.de. Wenn Sie kommerzielle Unterstützung für .NET/Scripting/PowerShell suchen, schauen Sie bitte auf unser Support-Angebot und unsere Schulungsangebote für Scripting und Schulungsangebote für .NET.



Registry Binary - UserPreferencesMask
Autor:  Markus
E-mail:  Antworten bitte nur in das Forum!
Datum:  21.12.2004 21:47:21
Subject:  Registry Binary - UserPreferencesMask
Bezug zum Buch:  Windows Scripting, COM Komponenten
Message:  Hallo

Control Panel -> System -> Advanced -> Performance -> Settings - Visual Effects

Bitte auch das Buch von Jerry Honeycutt, MS Press: "Windows XP Registry Guide", Seite 121 beachten!
PAGE 121

Ich möchte den für mehrere Einstellungen zuständigen Registry Wert

HKCU\Control Panel\Desktop\UserPreferencesMask

mit folgendem Script verändern:

Dim strKeyRoot
Dim strKeyPath
Dim strKey
Dim lngPacket
Dim bytToChange
Dim bolOperation

strKeyTree = "HKEY_CURRENT_USER"
strKeyPath = "Control Panel\Desktop"
strKey = "UserPreferencesMask"
lngPacket = 0
bytToChange = 2
bolOperation = 1

Call proRegistryBinary(strKeyTree, strKeyPath, strKey, lngPacket, bytToChange, bolOperation)

Sub proRegistryBinary(strKeyTree, strKeyPath, strKey, lngPacket, bytToChange, bolOperation)

     Dim objRegistryKey
     Dim ary_bytOldValue
     Dim strKeyRoot
     Dim bytByte
     
     Set objRegistryKey = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
     
     Select Case strKeyTree
          Case "HKEY_CLASSES_ROOT"
               strKeyRoot = &H80000000
          Case "HKEY_CURRENT_USER"
               strKeyRoot = &H80000001
          Case "HKEY_LOCAL_MACHINE"
               strKeyRoot = &H80000002
          Case "HKEY_USERS"
               strKeyRoot = &H80000003
          Case "HKEY_CURRENT_CONFIG"
               strKeyRoot = &H80000005
     End Select
     
     objRegistryKey.GetBinaryValue strKeyRoot, strKeyPath, strKey, ary_bytOldValue
     
     For Each bytByte In ary_bytOldValue
          
          If lngI = lngPacket Then
               If bolOperation = 0 Then
                    bytByte = bytByte - bytToChange
               ElseIf bolOperation = 1 Then
                    bytByte = bytByte + bytToChange                    
               End If
          End If
          
          ary_bytOldValue(lngI) = bytByte
          
          lngI = lngI + 1
          
     Next
     
     objRegistryKey.SetBinaryValue strKeyRoot, strKeyPath, strKey, ary_bytOldValue
     
     Set objRegistryKey = Nothing

End Sub

Dieses Script schaltet den Wert "Menu fading" (ich arbeite mit der engl. Version von XP) an.

Meine Frage:
Wie verhindere ich es den Wert "Menu fading" (0x0200) oder irgend ein anderer Wert, der in diesem Key gespeichert wird, "doppelt" anzuschalten?
Auch wenn ich das Script mehrmals ausführe soll der Wert nur einmal an- oder aus geschalten werden.

Vielen Dank im Voraus.
Markus

Antworten

  Zurück zum Forum



 Klassische Programmierung (Scripting, COM) -- Windows Scripting, VBScript, VB6, u.a.
 Registry Binary - UserPreferencesMask von Markus  am 21.12.2004 9:47:21 PM


www.IT-Visions.de - Dr. Holger Schwichtenberg / 1998-2019