Español
Stammtisch & Café

RegQueryInfoKey.

 


Descripción:

RegQueryInfoKey liefert erweiterte Informationen encima una Registryschlüssel.




Deklaration:

Def @RegQueryInfoKey(12) !ADVAPI32,RegQueryInfoKeyA




Parámetro:

1.Parámetro: Das Handle uno geöffneten Registryschlüssels, dessen Infos uno auslesen voluntad. Der Schlüssel muß con el Zugriffsrecht KEY_QUERY_VALUE ($1) geöffnet voluntad.
2.Parámetro: Un ausreichend dimensionierte Bereichsvariable, el el Klassennamen des Registrykeys aufnimmt (si disponible). Dieser Parámetro kann 0 ser, si la Info no gebraucht se.
3.Parámetro: Adresse uno LongIntvariablen oder 4 Byte Bereichsvariable, el el Longitud de Parámetro 2 en Bytes enthält. Kehrt el Función zurück, es hier el después de Parámetro 2 kopierte Anzahl a Bytes. Dieser Parámetro kann 0 ser, si la 2.Parámetro 0 es.
4.Parámetro: Reserviert, muß 0 ser.
5.Parámetro: Adresse uno LongIntvariablen oder 4 Byte Bereichsvariable, el el número el Unterschlüssel aufnimmt. Kann 0 ser, si la Info no benötigt se.
6.Parámetro: Adresse uno LongIntvariablen oder 4 Byte Bereichsvariable, el el Größe des längsten Unterschlüssels aufnimmt. Kann 0 ser, si la Info no benötigt se.
7.Parámetro: Adresse uno LongIntvariablen oder 4 Byte Bereichsvariable, el el Longitud des längsten Unterschlüssel-Klassennamens aufnimmt. Kann 0 ser, si la Info no benötigt se.
8.Parámetro: Adresse uno LongIntvariablen oder 4 Byte Bereichsvariable, el el número el Werte en el Schlüssel aufnimmt. Kann 0 ser, si la Info no benötigt se.
9.Parámetro: Adresse uno LongIntvariablen oder 4 Byte Bereichsvariable, el el Longitud des längsten Wertenamens aufnimmt. Kann 0 ser, si la Info no benötigt se.
10.Parámetro: Adresse uno LongIntvariablen oder 4 Byte Bereichsvariable, el el Longitud des längsten Wertes aufnimmt. Kann 0 ser, si la Info no benötigt se.
11.Parámetro: Adresse uno LongIntvariablen oder 4 Byte Bereichsvariable, el el Longitud des Security Descriptors des Schlüssels aufnimmt. Kann 0 ser, si la Info no benötigt se.
12.Parámetro: FILETIME Struktur oder 8 Byte Bereichsvariable, el el Tiempo des letzten Schreibens en el Schlüssel aufnimmt. Gerechnet se el Tiempo de el 01.01.1601 en 100 Nanosekunden.



Rückgabewert:

0 en Erfolg, en Fehler una Errorcode.


Beispiele:

KompilierenMarcaSeparación
Def @RegOpenKeyEx(5) !"ADVAPI32","RegOpenKeyExA"
Def @RegEnumKey(4) !"ADVAPI32","RegEnumKeyA"
Def @RegCloseKey(1) !"ADVAPI32","RegCloseKey"
Def @InitCommonControls(0) !"COMCTL32","InitCommonControls"
Def @RegQueryInfoKey(12) !"ADVAPI32","RegQueryInfoKeyA"
DEF @GetSysColor(1) !"USER32","GetSysColor"
@InitCommonControls()
Declare CLASS#,ClassSize&,SubKeys&,Greatest&,MaxClassLen&
Declare Values&,MaxValueNameLen&,MaxValueLen&,SecDescLänge&,FileTime#
Declare Fehler&,CL_NAME&
Declare hImageList&,hIcon&,Executehandle&,Root1&,ROOT&[2,3,10],ROOT11&
Declare Imagelist&,TV_INSERT#,TV_TEXT#,TV_ITEM#,REG_KEY$,REG_ROOT$,REG_ERGEBNIS$
Declare Unterlage7&,TV_ITEM_HANDLE&,TV_ITEM_HANDLE2&
Declare REG_ERGEBNIS#,REG_ERROR&,REG_HANDLE&
Declare REG_Zähler%,TV_ITEM_HANDLE1&
Declare CL_Länge&,SK_ANZAHL&,SK_Länge&,CL_LängeMax&,W_Anzahl&
Declare WN_Länge&,W_Länge&,SecDesc_Länge&
Dim TV_TEXT#,261
DIM REG_ERGEBNIS#,261
Declare TreeView&
DIM TV_INSERT#,48
DIM TV_ITEM#,40

PROC TVINSERT

    String TV_TEXT#,0=@$(2)      Der Text im Label
    long TV_INSERT#,0=@&(1)          TVins-Parent
    long TV_INSERT#,8=$0001
    long TV_INSERT#,24=TV_TEXT#   Adress of Label

ENDPROC

Windowstyle 31+512
Window 10,50-600,420
Windowtitle "Infos über Registrykeys auslesen"
settruecolor 1
cls @GETSYSCOLOR(15)
LET Unterlage7&=@Control("Dialog","",$40000000+$10000000,10,50,600,320,%HWND,3,%HINSTANCE)
Let TreeView&=@control("SysTreeView32","",$40000000+$10000000+$800000+$200000+$0002+$0010+$0020,40,20,250,300,Unterlage7&,200,%Hinstance)
@sendmessage(TreeView&,$1109,0,Imagelist&) Associate the image list with the tree
LET CL_NAME&=@Createtext(%HWND,"Klassenname=",310,50,400,30)
LET CL_Länge&=@Createtext(%HWND,"Länge des Klassennamens=",310,85,400,30)
LET SK_ANZAHL&=@Createtext(%HWND,"Anzahl der Unterschlüssel=",310,190,400,30)
LET SK_LÄNGE&=@Createtext(%HWND,"Läng des größten Unterschlüssels=",310,155,400,30)
LET CL_LängeMax&=@Createtext(%HWND,"Länge des längsten Klassennamens=",310,120,400,30)
LET W_Anzahl&=@Createtext(%HWND,"Anzahl der Werte im Schlüssel=",310,225,400,30)
LET WN_Länge&=@Createtext(%HWND,"Länge des größten Wertenamens=",310,260,400,30)
LET W_Länge&=@Createtext(%HWND,"Länge des größten Wertes=",310,295,400,30)
LET SecDesc_Länge&=@Createtext(%HWND,"Länge des Security Descriptors=",310,330,400,30)
@Sendmessage(Treeview&,$111D,0,@RGB(255,255,220))
@Sendmessage(Treeview&,$111E,0,@RGB(255,70,100))
TVINSERT 0,"HKEY_LOCAL_MACHINE",$0010
@sendmessage(Treeview&,$1100,0,TV_INSERT#)
TVINSERT 0,"HKEY_USERS",$0010
@sendmessage(Treeview&,$1100,0,TV_INSERT#)
CLEAR TV_ITEM#,TV_TEXT#

While %MENUITEM<>-2

    Sleep 100
    LET TV_ITEM_HANDLE1&=@sendmessage(Treeview&,$110A,$0009,0)

    IF TV_ITEM_HANDLE1&<>TV_ITEM_HANDLE&

        Enablewindow Treeview&,0
        Usecursor 2
        LET REG_KEY$=""
        LET REG_ROOT$=""
        LET TV_ITEM_HANDLE&=TV_ITEM_HANDLE1&
        CLEAR TV_ITEM#,TV_TEXT#
        LONG TV_ITEM#,0=$11
        LONG TV_ITEM#,20=261
        LONG TV_ITEM#,16=TV_TEXT#
        LONG TV_ITEM#,4=TV_ITEM_HANDLE&
        @sendmessage(Treeview&,$110C,0,TV_ITEM#)
        LET REG_KEY$=@STRING$(TV_TEXT#,0)
        LET TV_ITEM_HANDLE2&=TV_ITEM_HANDLE&

        While TV_ITEM_HANDLE2&<>0

            LET TV_ITEM_HANDLE2&=@sendmessage(Treeview&,$110A,$3,TV_ITEM_HANDLE2&)

            IF TV_ITEM_HANDLE2&<>0

                CLEAR TV_ITEM#,TV_TEXT#
                LONG TV_ITEM#,0=$11
                LONG TV_ITEM#,20=261
                LONG TV_ITEM#,16=TV_TEXT#
                LONG TV_ITEM#,4=TV_ITEM_HANDLE2&
                @sendmessage(Treeview&,$110C,0,TV_ITEM#)
                LET REG_KEY$=""+REG_KEY$
                LET REG_KEY$=@STRING$(TV_TEXT#,0)+REG_KEY$

            endif

        wend

        LET REG_ROOT$=@SubStr$(REG_KEY$,1,"")

        IF REG_ROOT$<>""

            LET REG_KEY$=@TRANSLATE$(REG_KEY$,REG_ROOT$,"")
            CASE LEFT$(REG_KEY$,1)="" : LET REG_KEY$=@RIGHT$(REG_KEY$,@LEN(REG_KEY$)-1)

        else

            LET REG_ROOT$=REG_KEY$
            LET REG_KEY$=""

        endif

        While @sendmessage(Treeview&,$110A,$4,TV_ITEM_HANDLE&)<>0

            LET TV_ITEM_HANDLE2&=@sendmessage(Treeview&,$110A,$4,TV_ITEM_HANDLE&)
            @Sendmessage(Treeview&,$1101,0,TV_ITEM_HANDLE2&)

        wend

        IF REG_ROOT$="HKEY_USERS"

            LET REG_Error&=@RegOpenKeyEx($80000003,@addr(REG_Key$),0,$20019,@addr(REG_Handle&))

        Elseif REG_ROOT$="HKEY_LOCAL_MACHINE"

            LET REG_Error&=@RegOpenKeyEx($80000002,@addr(REG_Key$),0,$20019,@addr(REG_Handle&))

        else

            LET REG_Error&=2

        endif

        LET REG_ZÄHLER%=0

        whilenot REG_Error&

            LET REG_Error&=@RegEnumKey(REG_Handle&,REG_Zähler%,REG_Ergebnis#,261)

            IF REG_Error&=0

                LET REG_ERGEBNIS$=@string$(REG_Ergebnis#,0)
                TVINSERT TV_ITEM_HANDLE&,REG_ERGEBNIS$,$0010
                @sendmessage(Treeview&,$1100,0,TV_INSERT#)

            endif

            inc REG_Zähler%

        wend

        Dim Class#,261
        DIM FileTime#,8
        LET ClassSize&=261
        Let Fehler&=@RegQueryInfoKey(REG_Handle&,Class#,@ADDR(ClassSize&),0,@ADDR(SubKeys&),@ADDR(Greatest&),@ADDR(MaxClassLen&),@ADDR(Values&),@ADDR(MaxValueNameLen&),@ADDR(MaxValueLen&),@ADDR(SecDescLänge&),FileTime#)
        Settext CL_NAME&,"Klassenname="+@String$(CLASS#,0)
        Settext CL_Länge&,"Länge des Klassennamens="+@STR$(ClassSize&)
        Settext SK_ANZAHL&,"Anzahl der Unterschlüssel="+@STR$(SubKeys&)
        Settext SK_Länge&,"Länge des größten Unterschlüssels="+@STR$(Greatest&)
        Settext CL_LängeMax&,"Länge des größten Klassennamens="+@STR$(MaxClassLen&)
        Settext W_Anzahl&,"Anzahl der Werte im Schlüssel="+@STR$(Values&)
        Settext WN_Länge&,"Länge des größten Wertenamens="+@STR$(MaxValueNameLen&)
        Settext W_Länge&,"Länge des größten Wertes="+@STR$(MaxValueLen&)
        Settext SecDesc_Länge&,"Länge des Security Descriptors="+@STR$(SecDescLänge&)
        Dispose FileTime#
        Dispose CLASS#
        @RegCloseKey(REG_Handle&)
        @Sendmessage(Treeview&,$1113,0,TV_ITEM_HANDLE&)
        Usecursor 0
        Enablewindow Treeview&,1

    endif

    DRAWTEXT 0,0,"REG_ROOT$="+REG_ROOT$+@SPACE$(255)
    DRAWTEXT 0,20,"REG_KEY$="+REG_KEY$+@SPACE$(255)

WEND

Dispose TV_ITEM#
Dispose TV_TE
class=s4 href='./../../funktionsreferenzen/XProfan/disponer/'>DISPOSE TV_INSERT# Disponer REG_ERGEBNIS#

[keywords:c4a25e952a]
Klassenname Schlüssel Key Registry Unterschlüssel Anzahl Größe größter Longitud Valor Werte Name Buchstaben Bytes
[/keywords:c4a25e952a]
 
02.07.2005  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

1.592 Views

Untitledvor 0 min.
Christian Hahn26.06.2013
Manfred Barei21.01.2012
E.T.19.02.2011

Themeninformationen

Dieses Thema ha 1 subscriber:

unbekannt (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie