dimento
Goto Top

Verständnissfrage zu .SetbinaryValue und AND,OR,NOT

Hallo zusammen,
Auf der Suche nach einer Möglichkeit ein einzelnes Bit in einem Registry Eintrag vom Typ REG_Binary zu setzen, bin ich auf folgendes VBS Script gestossen:

const HKCU = &H80000001
dim oWMIReg
set oWMIReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")   
dim iValueArray()
oWMIReg.GetBinaryValue HKCU, "Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects2", "Settings", iValueArray  
iValueArray(8) = (iValueArray(8) AND &h07) OR &h08
oWMIReg.SetBinaryValue HKCU, "Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects2", "Settings", iValueArray  
In diesem Beispiel wird in der Taskleiste die Uhr eingeschaltet.. Nicht spannend, aber die Methode ist interessant..

Der Author auf der Seite erklärt auch die Funktionsweise sehr ausführlich (www.insidetheregistry.com/content/viewarticle.aspx?articleid=1664)

Die Zeile "iValueArray(8) = (iValueArray(8) AND &h07) OR &h08" ist dabei alles entscheidend. Hier wird im neunten Byte das 5te BIT gesetzt. Leider versteh ich nicht was hier genau passiert
Wie funktionieren hier die Operatoren AND, OR, NOT???

Der Author erklärt hier leider nichts..

" If you don’t know AND, OR and NOT go to Wikipedia as this is already getting too long and I’m boring you enough, but needless to say, in the script I could AND or AND and OR my current binary number with a new one containing the flipped bit to turn on the clock, this is done like this…

Nach zwei Tagen vegeblichen googlen bin ich immer noch nicht schlauer..

Weiß jemand wie das mit "AND, OR, NOT" funktioniert oder hat einen Link mit einer Erklärung dazu?

Mir geht es nicht darum, wie man die Uhr ein oder ausschaltet.. ist ja nur ein Beispiel...Mich interessiert die Möglichkeit ein einzelnes BIT zu ändern ohne die anderen gesetzten Bits zu ändern.

Content-Key: 127355

Url: https://administrator.de/contentid/127355

Printed on: April 24, 2024 at 17:04 o'clock

Mitglied: 76109
76109 Oct 18, 2009 at 20:26:57 (UTC)
Goto Top
Hallo dimento!

Ich denke anhand einer Tabelle, ist das Ganze besser zu verstehenface-smile


Gruß Dieter