Français
Stammtisch & le café

RegSaveKey.

 


Beschreibung:

RegSaveKey speichert une Schlüssel et alle Unterschlüssel dans binärer forme dans un Dossier. sous NT-basierten Systemen ist zur Speicherung cela Privileg ‚SeBackupPrivilege’ nötig, cela auparavant aktiviert volonté doit.




Deklaration:

DEF @RegSaveKey(3)!ADVAPI32,RegSaveKeyA




paramètre:

1.paramètre: Handle eines geöffneten Keys (dessen Unterschlüssel on listen voudrais) comme LongInt ou bien folgende Werte =>
-HKEY_CLASSES_ROOT = $80000000
-HKEY_CURRENT_USER = $80000001
-HKEY_LOCAL_MACHINE = $80000002
-HKEY_USERS = $80000003
2.paramètre: Adresse eines Cordes ou bien Bereichsvariable avec String, qui den Dateinamen angibt, dans qui qui Schlüsselfolge gespeichert volonté soll.
3.paramètre: Bereichsvariable ou bien Struktur, qui qui Zugriffsrechte pour qui Dossier festlegt. cette paramètre peux aussi 0 son.



Rückgabewert:

0 chez Erfolg, chez Misserfolg un Wert <>0 (Fehlercode).


Beispiele:

KompilierenMarqueSéparation
DEF @RegSaveKey(3)!"ADVAPI32","RegSaveKeyA" Speichert eine Schlüsselfolge in einen Hive.
DEF @RegOpenKeyEx(5) !"ADVAPI32","RegOpenKeyExA" Liefert Handle eines Registryschlüssels und öffnet ihn.
DEF @RegCloseKey(1) !"ADVAPI32","RegCloseKey" Schließt eine geöffneten Registryschlüssel.
DEF @LookupPrivilegeName(4)!"advapi32","LookupPrivilegeNameA" Ermittelt aus dem Luid eines Privilegs dessen Namen.
DEF @LookupPrivilegeValue(3) !"advapi32","LookupPrivilegeValueA" Ermittelt aus dem Namen eines Privilegs dessen Luid.
DEF @OpenProcessToken(3) !"advapi32","OpenProcessToken" Öffnet Einstellprozess.
DEF @AdjustTokenPrivileges(6) !"advapi32","AdjustTokenPrivileges" Stellt Privilegien ein.
DEF @GetCurrentProcess(0) !"kernel32","GetCurrentProcess" Ermittel das Handle des aktiven Prozesses.
Declare Fehler&,Schlüssel$,Handle#,Handle&,Button&,SaveFile$,IO%
Declare NewState#,Luid1#,Luid2#,Privileg1#,Token&,token#,ZAHL2&,ZAHL1&
Declare BUFFER#,OLDVALUE#,out#,Größe#,System$
Der Folgende Codeanteil ist nur unter NT-basierten nötig
DIM token#,4
DIM NewState#,16
DIM Luid1#,8
DIM Privileg1#,256
DIM BUFFER#,4
DIM OUT#,256
Dim Größe#,4
DIM OLDVALUE#,256
Clear Out#,OLDVALUE#,Größe#,BUFFER#,Privileg1#,Luid1#,token#,System$
Long NewState#,0=1 Nur ein Privileg soll geändert werden
Long NewState#,12=$00000002 Das Privileg soll eingeschaltet werden
LET FEHLer&=@OpenProcessToken(@GetCurrentProcess(),$0020 | $0008,Token#) Es wird ein Process mit dem Handle Token gestartet, der Privilegien für mein Programm einstellen soll.
Addstring "Fehlercode OpenProcessToken: "+@str$(Fehler&) Wenns geklappt hat, dann 1.
let token&=@long(token#,0) Das Handle des Einstellprozesses wird ausgelesen.
String Privileg1#,0="SeBackupPrivilege" Privileg für RegSaveKey
LET FEHLer&=@LookupPrivilegeValue(@addr(System$),Privileg1#,LUID1#) Wenn ich es richtig vestanden habe, wird hier aus dem Privilegnamen eine Art lokales Handle für dieses Privileg ermittelt.
Addstring "Fehlercode LookupPrivilegeValue: "+@STR$(Fehler&) Wenns geklappt hat, dann 1.
Byte NewState#,4=@Byte(Luid1#,0)
Byte NewState#,5=@Byte(Luid1#,1)
Byte NewState#,6=@Byte(Luid1#,2)
Byte NewState#,7=@Byte(Luid1#,3)
Byte NewState#,8=@Byte(Luid1#,4)
Byte NewState#,9=@Byte(Luid1#,5)
Byte NewState#,10=@Byte(Luid1#,6)
Byte NewState#,11=@Byte(Luid1#,7)
clear buffer#
LET ZAHL1&=256
LET ZAHL2&=0
LET FEHLER&=@AdjustTokenPrivileges(Token&,ZAHL2&,NewState#,ZAHL1&,Oldvalue#,Buffer#) Das Privileg wird aktiviert.
Addstring "Fehlercode AdjustTokenPrivileges: "+@str$(Fehler&) Wenns geklappt hat, dann 1.
Addstring "SIZE: "+@str$(@long(Buffer#,0))
Long Größe#,0=256
@LookupPrivilegeName(@addr(System$),LUID1#,OUT#,Größe#) Aus dem ersten Luid wird wieder der Privilegname ermittelt.
Addstring "PRIVILEG: "+@string$(Out#,0) Nur Rückmeldung, ob es geklappt hat.
Dispose Luid1#
Dispose Privileg1#
Dispose token#
Dispose Newstate#
Dispose OUT#
Dispose Größe#
Ab hier wird abgespeichert
Let Schlüssel$=""
Let SaveFile$="C:REGHIVE"
DIM Handle#,4
Let Fehler&=@RegOpenKeyEx($80000001,@addr(Schlüssel$),0,$F003F,Handle#) ...hole das Handle des Hive...
ADDSTRING "Errorcode Handle des Hive holen: "+@Str$(Fehler&)
Let Handle&=@long(Handle#,0) ..Handle für Startpunkt des Hives wird ausgelesen....
Let Fehler&=@RegSaveKey(Handle&,@addr(SaveFile$),0) ...speichere den Hive unter C:REGHIVE...
ADDSTRING "Errorcode Hive abspeichern: "+@Str$(Fehler&)
Let Fehler&=@RegCloseKey(Handle&) ...mach "die Kiste" zu..
ADDSTRING "Errorcode Schlüssel schließen: "+@Str$(Fehler&)
Dispose Handle#
Windowtitle "Abspeichern des Registryschlüssels Current_User in binärer Form"
WindowStyle 31
Window 0,0-640,440
Let Button&=@CreateButton(%HWND,"Gespeicherten Hive löschen?",20,300,250,30)
@EditBox("API-Rückmeldungen",1)
CHDIR "C:"

IF FindFirst$("REGHIVE")=""

    EnableWindow Button&,0

endif

While 0=0

    Waitinput

    IF @Getfocus(Button&)

        LET IO%=%IORESULT
        Assign #1,"C:REGHIVE"
        SetFAttr #1,$20
        Erase #1
        CHDIR "C:"

        IF FindFirst$("REGHIVE")=""

            @Messagebox("Hive wurde gelöscht!","Hinweis",64)
            EnableWindow Button&,0

        endif

    endif

Wend


[keywords:ed0c458271]
Hive sichern abspeichern Registry
[/keywords:ed0c458271]
 
17.03.2005  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

2.119 Views

Untitledvor 0 min.

Themeninformationen

cet Thema hat 1 participant:

unbekannt (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie