Quelltexte/ Codesnippets | | | | Alfred Wagner | hallo profaner
ich möchte einen binärwert aus der registry auslesen und in einen checkbox als abgehakt ,oder auch nicht anzeigen (versuch ich schon seit einigen jahren) wäre nett wenn einer eine idee dazu hätte
grüsse alfred |
| | | | |
| | | Einen Binärwert oder ein Long? Ein Binärwert wäre das (Windows98): KompilierenMarkierenSeparierenBeispiel zu api_RegQueryValueExA,ADVAPI32
Declare Handle#,Fehler&,Key#,Name#,Wert#,Size#,Type#,Zaehler%,Binaer$
Def @Regopenkeyex(5) !ADVAPI32,RegOpenKeyExA
Def @Regqueryvalueex(6) !ADVAPI32,RegQueryValueExA
Def @Regclosekey(1) !ADVAPI32,RegCloseKey
Windowstyle 31
Windowtitle Aus Registry Binärwert auslesen
Window 0,0-640,440
Dim Key#,513
Dim Handle#,4
Dim Name#,250
Dim Size#,4
Dim Wert#,2000
Dim Type#,4
String Key#,0=SoftwareMicrosoftWindowsCurrentVersion zu öffnender Schlüssel
$80000002=HKEY_LOCAL_MACHINE
$80000001=HKEY_CURRENT_USER
Let Fehler&=@Regopenkeyex($80000002,Key#,0,$1,Handle#)
Print Fehlercode beim Öffenen des Schlüssels: +@str$(Fehler&)
If Fehler&=0
String Name#,0=FirstInstallDateTime auszulesender Wert
Long Size#,0=2000
Let Fehler&=@Regqueryvalueex(@Long(Handle#,0),Name#,0,Type#,Wert#,Size#)
Print Fehlercode beim Auslesen des Schlüssels: +@str$(Fehler&)
Print
Print Ausgelesener Wert:
Clear Zaehler%,Binaer$
While Zaehler%<@Long(Size#,0)
LET Binaer$=Binaer$+@Hex$(@Byte(Wert#,Zaehler%))+
Inc Zaehler%
wend
Print Binaer$
Print Typ des Schlüssels: +@str$(@Long(Type#,0))
Print Länge des Wertes: +@str$(@Long(Size#,0))+ Bytes
Print
@Regclosekey(@Long(Handle#,0))
Endif
Dispose Type#
Dispose Wert#
Dispose Key#
Dispose Handle#
Dispose Name#
Dispose Size#
While 1
Waitinput
Wend
|
| | | | |
| | | Wenn du aber ein Doubleword (oder auch Long) meinst, geht das so: KompilierenMarkierenSeparierenBeispiel zu api_RegQueryValueExA,ADVAPI32
Declare Handle#,Fehler&,Key#,Name#,Wert#,Size#,Type#,Zaehler%,Binaer$,Box&
Def @Regopenkeyex(5) !ADVAPI32,RegOpenKeyExA
Def @Regqueryvalueex(6) !ADVAPI32,RegQueryValueExA
Def @Regclosekey(1) !ADVAPI32,RegCloseKey
Windowstyle 31
Windowtitle Aus Registry Binärwert auslesen
Window 0,0-640,440
LET BOX&=@CreateCheckbox(%HWND,Screensaver nicht einstellbar:,10,200,300,30)
Dim Key#,513
Dim Handle#,4
Dim Name#,250
Dim Size#,4
Dim Wert#,4
Dim Type#,4
String Key#,0=SoftwareMicrosoftWindowsCurrentVersionPoliciesSystem zu öffnender Schlüssel
$80000002=HKEY_LOCAL_MACHINE
$80000001=HKEY_CURRENT_USER
Let Fehler&=@Regopenkeyex($80000001,Key#,0,$1,Handle#)
Print Fehlercode beim Öffenen des Schlüssels: +@str$(Fehler&)
Clear Wert#
If Fehler&=0
String Name#,0=NoDispScrSavPage auszulesender Wert
Long Size#,0=4
Let Fehler&=@Regqueryvalueex(@Long(Handle#,0),Name#,0,Type#,Wert#,Size#)
Print Fehlercode beim Auslesen des Schlüssels: +@str$(Fehler&)
Print
Print Ausgelesener Wert: +@str$(@long(Wert#,0))
Print Typ des Schlüssels: +@str$(@Long(Type#,0))
Print Länge des Wertes: +@str$(@Long(Size#,0))+ Bytes
Print
@Regclosekey(@Long(Handle#,0))
Endif
SetCheck Box&,@Long(Wert#,0)
Dispose Type#
Dispose Wert#
Dispose Key#
Dispose Handle#
Dispose Name#
Dispose Size#
While 1
Waitinput
Wend
Was war gesucht? |
| | | | |
| | Alfred Wagner | hallo Andreas danke für deine Hilfe
der zweite code war es.
hab ihn aber ein wenig abändern müssen weil das häkchen auf der checkbox beim wert null eingeschaltet sein soll.
hab zuerst den wert in eine test.ini geschrieben,und danach ausgelesen. KompilierenMarkierenSeparierenBeispiel zu api_RegQueryValueExA,ADVAPI32
Declare Handle#,Fehler&,Key#,Name#,Wert#,Size#,Type#,Zaehler%,Binaer$,Box&
Def @Regopenkeyex(5) !ADVAPI32,RegOpenKeyExA
Def @Regqueryvalueex(6) !ADVAPI32,RegQueryValueExA
Def @Regclosekey(1) !ADVAPI32,RegCloseKey
@Set(ErrorLevel, 0)
Windowstyle 31
Windowtitle Aus Registry Binärwert auslesen
Window 0,0-640,440
Def Home(0) Translate$(Upper$(Par$(0)),Upper$(FindFirst$(Par$(0))),)
Declare Inifile$
LET home$ = @Par$(0)
IniFile$ = Home()+ Test.ini
LET BOX&=@CreateCheckbox(%HWND,Eindeutige Player - ID NICHT an Inhaltsanbieter senden,10,200,450,15)
Dim Key#,513
Dim Handle#,4
Dim Name#,250
Dim Size#,4
Dim Wert#,4
Dim Type#,4
String Key#,0=SoftwareMicrosoftMediaPlayerPreferenceszu öffnender Schlüssel
$80000002=HKEY_LOCAL_MACHINE
$80000001=HKEY_CURRENT_USER
Let Fehler&=@Regopenkeyex($80000001,Key#,1,$F003F,Handle#)
Print Fehlercode beim Öffenen des Schlüssels: +@str$(Fehler&)
Clear Wert#
String Name#,0=SendUserGUIDauszulesender Wert
Long Size#,0=4
Let Fehler&=@Regqueryvalueex(@Long(Handle#,0),Name#,0,Type#,Wert#,Size#)
Print Fehlercode beim Auslesen des Schlüssels: +@str$(Fehler&)
Print
Print Ausgelesener Wert: +@str$(@long(Wert#,0))
WriteIni IniFile$,SendUserGUID,Wert=+@str$(@long(Wert#,0))Wert in die Test.ini schreiben
Print Typ des Schlüssels: +@str$(@Long(Type#,0))
Print Länge des Wertes: +@str$(@Long(Size#,0))+ Bytes
Print
@Regclosekey(@Long(Handle#,0))
Declare Wert$Falls Wert nicht vorhanden
Wert$=ReadIni$(HKEY_1,SoftwareMicrosoftMediaPlayerPreferences,SendUserGUID)
If %ERROR
WriteIni IniFile$,SendUserGUID,Wert=nicht vorhanden
Endif
Wert von der Test.INI auslesen und Checkbox bei einem Binärwert von null abhaken
If Readini$(IniFile$,SendUserGUID,Wert)=1
Setcheck BOX&,0
Print Wert ist 1
Elseif Readini$(IniFile$,SendUserGUID,Wert)=0
Setcheck BOX&,1
Print Wert ist 0
Elseif Readini$(IniFile$,SendUserGUID,Wert)=nicht vorhanden
Setcheck BOX&,1
Print Wert in der Registry nicht vorhanden
Endif
Dispose Type#
Dispose Wert#
Dispose Key#
Dispose Handle#
Dispose Name#
Dispose Size#
While 1
Waitinput
Wend
danke nochmal für deine hilfe
grüsse
Alfred mit Familie |
| | | | |
|
Zum QuelltextThemenoptionen | 6.774 Betrachtungen |
ThemeninformationenDieses Thema hat 2 Teilnehmer: |
|