REG_BINARY [erledidigt]

Fragen rund um diverse Windows-Versionen, ihr Verhalten unter Xbase++ und den Umgang mit der API

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

REG_BINARY [erledidigt]

Beitrag von AUGE_OHR »

hi,

aus "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones"
lese ich die Subkeys und will dann auf "TZI" zugreifen was REG_BINARY ist.
Time_Zones.JPG
Time_Zones.JPG (86.04 KiB) 3318 mal betrachtet
nun bekomme ich bei

Code: Alles auswählen

*     oReg:ReadBinType("A") // crash -> VAR2BIN()
      oReg:ReadBinType("C")  // nur 4 Byte ( ??? )
      cText := oReg:GetValue( "TZI" )
aber nur 4 Byte ( ??? ) zurück ... :banghead:
was mache ich da verkehrt ?
Zuletzt geändert von AUGE_OHR am Mi, 18. Mai 2011 22:57, insgesamt 1-mal geändert.
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: REG_BINARY [erledigt]

Beitrag von AUGE_OHR »

hi,

nachdem ich im Alaska Forum gesucht habe bin ich auf den "Fehler" gestossen :
Thomas (incorrectly IMHO) uses Var2Bin and Bin2Var to do this, BIT
they are special xBase functions, and anything converted with Var2Bin
starts with XB++, then some binary data, THIS IS NOT what we want in a
Registry Entry.
deshalb gibt es die Fehlermeldung
oError:args :
-> VALTYPE: C VALUE: ‗■·· ─···
oError:canDefault : N
oError:canRetry : N
oError:canSubstitute: J
oError:cargo : NIL
oError:description : Kein XPF-Format oder falsche Versionsnummer
oError:filename :
oError:genCode : 42
oError:operation : bin2Var
oError:osCode : 0
oError:severity : 2
oError:subCode : 1102
oError:subSystem : BASE
oError:thread : 1
oError:tries : 0
-----------------------------------------------------------------
CALLSTACK:
-----------------------------------------------------------------
Aufgerufen von XBPREG:GETVALUE(607)
also habe ich nun die XBTools Function StrToHex() benutzt und siehe da habe ich meinen "String" \:D/

soweit so gut, aber nun muss ich das ja wieder in die "Structure" bringen ...

Code: Alles auswählen

   local cTZI := l2bin(0)+;             // LONG   Bias;             TZI _TimeZoneInfo   4   1-  4
                 space(64)+;            // WCHAR  StandardName[32];                    64   5- 68
                 replicate(W2bin(0),8)+;// SYSTEMTIME StandardDate;                    16  69- 84
                 l2bin(0)+;             // LONG   StandardBias;                         4  85- 88
                 space(64)+;            // WCHAR  DaylightName[ 32 ];                  64  89-152
                 replicate(W2bin(0),8)+;// SYSTEMTIME DaylightDate;                    16 153-168
                 l2bin(0)               // LONG       DaylightBias;                     4 169-172
                                        // wir brauchen hiervon nur die 3 Bias !
bei L2bin() bekomme ich ja 4 Zeichen zurück

Frage : wie bekomme ich nun meine "Hex" String a.) "zerlegt" und b.) nach "cBinary" ?

ich "denke" da an so was

Code: Alles auswählen

cTeil := SUBSTR(xHexString,1,4)
nNum := HEX2NUM(cTeil)
l2Bin(nNum)
oder liege ich das total falsch ?
Zuletzt geändert von AUGE_OHR am Mi, 18. Mai 2011 22:56, insgesamt 1-mal geändert.
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: REG_BINARY

Beitrag von AUGE_OHR »

wenn ich mir das so ansehe ...
TZI_Bedeutung.JPG
TZI_Bedeutung.JPG (170.21 KiB) 3303 mal betrachtet
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: REG_BINARY

Beitrag von AUGE_OHR »

hi,

Frage : wie bekomme ich "ffffffc4" nach -60 ?
TimeZoneInformation.JPG
TimeZoneInformation.JPG (53.46 KiB) 3301 mal betrachtet
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: REG_BINARY

Beitrag von AUGE_OHR »

AUGE_OHR hat geschrieben:Frage : wie bekomme ich "ffffffc4" nach -60 ?
mit den "TDI Bytes"

Code: Alles auswählen

? Bin2L(HexToStr("C4FFFFFF"))
und nicht mit dem "Hex Value" ( "ffffffc4" ) siehe Firefox Browser Bild.
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: REG_BINARY

Beitrag von AUGE_OHR »

AUGE_OHR hat geschrieben:nachdem ich im Alaska Forum gesucht habe bin ich auf den "Fehler" gestossen :
Quelle : Geoffrey Cohen (Bin2Var bug - No XPF-format or incompatible version number,
public.xbase++.bugreport, 29. Mai 2006)

Warnung : man darf bei StrToHex() "kein" ALLTRIM() verwenden !!! es könnte sonst das 1st Byte fehlen !!!

Beispiel : GMT +8, Taipeh "TZI" -> 20FEFFFF wird bei ALLTRIM() zu FEFFFF00
gruss by OHR
Jimmy
Antworten