Ja, dann kann ich dir auch nicht helfen, da gibt es den Key wohl nicht.
Kannst du ja mal mit dem Editor nachsehen.
Binär zu String
- sharkpeter
- Beiträge: 474
- Registriert: 29.08.2004 16:18
- Wohnort: Dresden
- Kontaktdaten:
- sharkpeter
- Beiträge: 474
- Registriert: 29.08.2004 16:18
- Wohnort: Dresden
- Kontaktdaten:
Habe es vorhin noch mal editiert. Binary gibt eine Adresse zurück und nicht
den Inhalt. Wie das dann geht, am besten Beispiel ansehen, ist bei der Lib
dabei. In meinem System (was ich im Moment laufen habe) gibt es den Eintrag
InstalledVersion nicht (ME). Wohl aber bei XP und da ist es richtig mit Binary.
Gruß Jens
den Inhalt. Wie das dann geht, am besten Beispiel ansehen, ist bei der Lib
dabei. In meinem System (was ich im Moment laufen habe) gibt es den Eintrag
InstalledVersion nicht (ME). Wohl aber bei XP und da ist es richtig mit Binary.
Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64
Nichts wissen macht nichts, sich dumm stellen aber schon.
Nichts wissen macht nichts, sich dumm stellen aber schon.
- sharkpeter
- Beiträge: 474
- Registriert: 29.08.2004 16:18
- Wohnort: Dresden
- Kontaktdaten:
Hier mal ein Code, der unterschiedliche Arten der Binärrückgabe zeigt:
Noch ein Wort als Nachsatz:
1. es existiert eine chm Hilfe zur Lib (Cursor auf die Funktion und F1)
2. es gibt ein Beispielprogramm welches im Downloadpaket enthalten ist
3. an einer Stelle in der Hilfe steht anstelle <*MID> <MemAdr> und das noch ohne Pointer.
Das ist aber nur ein Test, ob es gemerkt wird
(nee, im Ernst ich habe mich verschrieben).
4. Das Leseverfahren gilt auch für bereits exisiterende Value, also auch
für InstalledVersion
5. man muß die Schreibweise einhalten wenn man ein Value lesen will,
auch Groß-/Kleinschreibung
6. Binary beinhalten nicht eine Klartextangabe, also 0 ist CHR( 0 ) = NUL
und nicht CHR( 48 ) = "0"
7. AllocateMemory() reserviert immer mindestes 12 Byte, warum das so ist
Fred fragen, mich stört es nicht
Gruß Jens
Code: Alles auswählen
; Testprogramm für Binary
testkey.s="TestBinary"
testbin.s="EinBinary"
; Font wird für das Fenster unten benötigt
#Font=0
LoadFont(#Font,"Arial",10)
; den Subkey erstellen
Debug JHRegCreateKey(#HKEY_CURRENT_USER,testkey)
; das Value erstellen und mit Werten belegen
Length.l = 32
Restore BinaryTest ; Data
*MID = AllocateMemory(Length)
For a=0 To 31
Read b
PokeB(*MID+a,b)
Next a
If *MID; wenn ein gültiger Speicher festliegt
Debug JHRegSetBinary(#HKEY_CURRENT_USER,testkey,testbin,Str(*MID),#False)
FreeMemory(*MID)
EndIf
; Das binäre Value auslesen auf unterschiedliche Weise
; gibt einen HEX!!! String zurück mit dem Inhalt
Debug JHRegGetValue(#HKEY_CURRENT_USER,testkey,testbin)
; gibt die Adresse eines Speichers zurück, wo der Inhalt abgelegt wurde
; nachfolgende Verarbeitung wie man es braucht
*MID=JHRegGetBinary(#HKEY_CURRENT_USER,testkey,testbin)
If *MID
For I = 0 To MemorySize(*MID)-1
Debug PeekB(*MID + I) & $FF ; wegen signierter Variable!
Next
FreeMemory(*MID)
EndIf
; gibt ein Fenster aus, wo der Inhalt in Form eines Dump aufgelistet wird
; kann man benutzen wenn man nur sehen will was drin steht, nicht geeignet
; zu Weiterverarbeitung
JHRegGetBinaryDump(#HKEY_CURRENT_USER,testkey,testbin,#Font)
; den SubKey wieder entfernen
Debug JHRegDeleteKey(#HKEY_CURRENT_USER,testkey)
End
; Binary Test
DataSection
BinaryTest:
Data.l 77, 65, 68, 69, 0, 73, 78, 0
Data.l 83, 65, 88, 79, 78, 89, 0, 0
Data.l 67, 72, 69, 77, 78, 73, 84, 90
Data.l 0, 0, 0, 0, 0, 0, 0, 0
EndDataSection
1. es existiert eine chm Hilfe zur Lib (Cursor auf die Funktion und F1)
2. es gibt ein Beispielprogramm welches im Downloadpaket enthalten ist
3. an einer Stelle in der Hilfe steht anstelle <*MID> <MemAdr> und das noch ohne Pointer.
Das ist aber nur ein Test, ob es gemerkt wird

4. Das Leseverfahren gilt auch für bereits exisiterende Value, also auch
für InstalledVersion
5. man muß die Schreibweise einhalten wenn man ein Value lesen will,
auch Groß-/Kleinschreibung
6. Binary beinhalten nicht eine Klartextangabe, also 0 ist CHR( 0 ) = NUL
und nicht CHR( 48 ) = "0"
7. AllocateMemory() reserviert immer mindestes 12 Byte, warum das so ist
Fred fragen, mich stört es nicht
Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64
Nichts wissen macht nichts, sich dumm stellen aber schon.
Nichts wissen macht nichts, sich dumm stellen aber schon.