Français
Stammtisch & le café

MapGenericMask.

 


Beschreibung:

MapGenericMask wandelt Generic-Rechte dans einer Zugriffsmaske dans en standard et spezifischen Rechte um et entfernt pas definierte Flags. MapGenericMask ist sous anderem beim comparer de Zugriffsrechten une très nützliche Funktion. cet API gibt es seulement sous NT-basierten Windowssystemen.




Deklaration:

Def @MapGenericMask(2) !advapi32,MapGenericMask




paramètre:

1.paramètre: 4 Byte Bereichsvariable ou bien Adresse einer LongInt-Variablen, qui qui umzusetzenden Zugriffsrechte contient. Kehrt qui Funktion zurück, stehen ici qui umgewandelten Zugriffsrechte.
2.paramètre: GENERIC_MAPPING Struktur ou bien 16 Bytes grand Bereichsvariable quelle angibt, comment qui Rechte mise en œuvre volonté devoir. là qui u.a. qui spezifischen Rechte de qui Art qui Zugriffsmaske dépendre (z.B. Fichiers, Registry...), hängen qui ici einzusetzenden Werte en ab, worauf sich qui Zugriff bezieht.
- Byte 0-4 = Kombinationsflag aus standard et spezifische Rechten, qui zusammen GENERIC_READ entsprechen. quoi ici einzusetzen ist, hängt en ab worauf sich qui Zugriffsmaske bezieht (z.B. Fichiers, Registry...). chez Fichiers wäre qui Wert ici $120089.
- Byte 4-8 = Kombinationsflag aus standard et spezifische Rechten, qui zusammen GENERIC_WRITE entsprechen. quoi ici einzusetzen ist, hängt en ab worauf sich qui Zugriffsmaske bezieht (z.B. Fichiers, Registry...). chez Fichiers wäre qui Wert ici $120116.
- Byte 8-12 = Kombinationsflag aus standard et spezifische Rechten, qui zusammen GENERIC_EXECUTE entsprechen. quoi ici einzusetzen ist, hängt en ab worauf sich qui Zugriffsmaske bezieht (z.B. Fichiers, Registry...). chez Fichiers wäre qui Wert ici $1200A0.
- Byte 12-16 = Kombinationsflag aus standard et spezifische Rechten, qui zusammen GENERIC_ALL entsprechen. quoi ici einzusetzen ist, hängt en ab worauf sich qui Zugriffsmaske bezieht (z.B. Fichiers, Registry...). chez Fichiers wäre qui Wert ici $1F01FF.



Rückgabewert:

qui Funktion gibt keinen Wert zurück.


Beispiele:

KompilierenMarqueSéparation
Def @MapGenericMask(2) !"advapi32","MapGenericMask"
Windowstyle 31
Windowtitle "Generic Mapping"
Window 0,0-640,440
Declare GEN_ACCESS&,READ&,WRITE&,EXECUTE&,OK&,ALL&,MAPPED_ACCESS#
Let Read&=@CreateCheckBox(%HWND,"GENERIC_READ",10,20,200,30)
Let Write&=@CreateCheckBox(%HWND,"GENERIC_WRITE",10,100,200,30)
Let EXECUTE&=@CreateCheckBox(%HWND,"GENERIC_EXECUTE",10,180,200,30)
Let ALL&=@CreateCheckBox(%HWND,"GENERIC_ALL",10,260,200,30)
LET OK&=@CreateButton(%HWND,"Mappen!",10,350,200,30)

While 0=0

    Waitinput

    IF @Getfocus(OK&)

        LET GEN_ACCESS&=0

        IF @Getcheck(READ&)

            LET GEN_ACCESS&=@or(GEN_ACCESS&,$80000000)

        endif

        IF @Getcheck(WRITE&)

            LET GEN_ACCESS&=@or(GEN_ACCESS&,$40000000)

        endif

        IF @Getcheck(EXECUTE&)

            LET GEN_ACCESS&=@or(GEN_ACCESS&,$20000000)

        endif

        IF @Getcheck(ALL&)

            LET GEN_ACCESS&=@or(GEN_ACCESS&,$10000000)

        endif

        ADDSTRING "*** Zugriffsrechte vor Mapping ***"
        ADDSTRING "Accessmaske=$"+@HEX$(GEN_ACCESS&)

        IF @or(GEN_ACCESS&,$1F01FF)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=FILE_ALL_ACCESS (Vollzugriff)"

        endif

        IF @or(GEN_ACCESS&,$1)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=FILE_READ_DATA (Erlaubt Daten aus einem File zu lesen)"

        endif

        IF @or(GEN_ACCESS&,$2)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=FILE_WRITE_DATA (Erlaubt Daten zu Scheiben)"

        endif

        IF @or(GEN_ACCESS&,$4)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=FILE_APPEND_DATA (Erlaubt Daten anzuhängen)"

        endif

        IF @or(GEN_ACCESS&,$8)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=FILE_READ_EA (Erlaubt erweiterte Attibute zu lesen)"

        endif

        IF @or(GEN_ACCESS&,$10)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=FILE_WRITE_EA (Erlaubt erweiterte Attribute zu schreiben)"

        endif

        IF @or(GEN_ACCESS&,$20)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=FILE_EXECUTE (Erlaubt eine Datei auszuführen)"

        endif

        IF @or(GEN_ACCESS&,$80)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=FILE_READ_ATTRIBUTES (Lesen der Fileattribute)"

        endif

        IF @or(GEN_ACCESS&,$100)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=FILE_WRITE_ATTRIBUTES (Ändern der Fileattribute)"

        endif

        IF @or(GEN_ACCESS&,$00040000)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=WRITE_DAC (Ändern der DACL Einträge)"

        endif

        IF @or(GEN_ACCESS&,$00020000)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=READ_CONTROL (Lesen der DACL Einträge und Besitzer)"

        endif

        IF @or(GEN_ACCESS&,$00100000)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=SYNCHRONIZE (Erlaubt einem FileHandle auf ein Complitition I/O zu warten)"

        endif

        IF @or(GEN_ACCESS&,$40)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=File_Delete _Child (Erlaubt einen Unterordner zu löschen - für Dateien keine Bedeutung)"

        endif

        IF @or(GEN_ACCESS&,$01000000)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=ACCESS_SYSTEM_SECURITY (Zugriff auf den SACL)"

        endif

        IF @or(GEN_ACCESS&,$10000000)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=GENERIC_ALL"

        endif

        IF @or(GEN_ACCESS&,$20000000)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=GENERIC_EXECUTE"

        endif

        IF @or(GEN_ACCESS&,$40000000)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=GENERIC_WRITE"

        endif

        IF @or(GEN_ACCESS&,$80000000)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=GENERIC_READ"

        endif

        IF @or(GEN_ACCESS&,$80000)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=WRITE_OWNER (Eigentümer ändern)"

        endif

        IF @or(GEN_ACCESS&,$10000)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=_DELETE (Datei löschen)"

        endif

        DIM MAPPED_ACCESS#,16
        Long MAPPED_ACCESS#,0=$20000 | $1 | $8 | $80 | $100000
        Long MAPPED_ACCESS#,4=$20000 | $2 | $10 | $100 | $100000 | $4
        Long MAPPED_ACCESS#,8=$20000 | $20 | $80 | $100000
        Long MAPPED_ACCESS#,12=$F0000 | $1FF | $100000
        @MapGenericMask(@ADDR(GEN_ACCESS&),MAPPED_ACCESS#)
        Dispose MAPPED_ACCESS#
        ADDSTRING ""
        ADDSTRING "*** Zugriffsrechte nach Mapping ***"
        ADDSTRING "Accessmaske=$"+@HEX$(GEN_ACCESS&)

        IF @or(GEN_ACCESS&,$80000000)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=GENERIC_READ"
            LET GEN_ACCESS&=GEN_ACCESS&-$80000000

        endif

        IF @or(GEN_ACCESS&,$1)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=FILE_READ_DATA (Erlaubt Daten aus einem File zu lesen)"
            LET GEN_ACCESS&=GEN_ACCESS&-$1

        endif

        IF @or(GEN_ACCESS&,$2)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=FILE_WRITE_DATA (Erlaubt Daten zu Scheiben)"
            LET GEN_ACCESS&=GEN_ACCESS&-$2

        endif

        IF @or(GEN_ACCESS&,$4)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=FILE_APPEND_DATA (Erlaubt Daten anzuhängen)"
            LET GEN_ACCESS&=GEN_ACCESS&-$4

        endif

        IF @or(GEN_ACCESS&,$8)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=FILE_READ_EA (Erlaubt erweiterte Attibute zu lesen)"
            LET GEN_ACCESS&=GEN_ACCESS&-$8

        endif

        IF @or(GEN_ACCESS&,$10)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=FILE_WRITE_EA (Erlaubt erweiterte Attribute zu schreiben)"
            LET GEN_ACCESS&=GEN_ACCESS&-$10

        endif

        IF @or(GEN_ACCESS&,$20)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=FILE_EXECUTE (Erlaubt eine Datei auszuführen)"
            LET GEN_ACCESS&=GEN_ACCESS&-$20

        endif

        IF @or(GEN_ACCESS&,$80)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=FILE_READ_ATTRIBUTES (Lesen der Fileattribute)"
            LET GEN_ACCESS&=GEN_ACCESS&-$80

        endif

        IF @or(GEN_ACCESS&,$100)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=FILE_WRITE_ATTRIBUTES (Ändern der Fileattribute)"
            LET GEN_ACCESS&=GEN_ACCESS&-$100

        endif

        IF @or(GEN_ACCESS&,$40000)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=WRITE_DAC (Ändern der DACL Einträge)"
            LET GEN_ACCESS&=GEN_ACCESS&-$40000

        endif

        IF @or(GEN_ACCESS&,$20000)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=READ_CONTROL (Lesen der DACL Einträge und Besitzer)"
            LET GEN_ACCESS&=GEN_ACCESS&-$20000

        endif

        IF @or(GEN_ACCESS&,$100000)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=SYNCHRONIZE (Erlaubt einem FileHandle auf ein Complitition I/O zu warten)"
            LET GEN_ACCESS&=GEN_ACCESS&-$100000

        endif

        IF @or(GEN_ACCESS&,$40)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=File_Delete _Child (Erlaubt einen Unterordner zu löschen - für Dateien keine Bedeutung)"
            LET GEN_ACCESS&=GEN_ACCESS&-$40

        endif

        IF @or(GEN_ACCESS&,$1000000)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=ACCESS_SYSTEM_SECURITY (Zugriff auf den SACL)"
            LET GEN_ACCESS&=GEN_ACCESS&-$1000000

        endif

        IF @or(GEN_ACCESS&,$10000000)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=GENERIC_ALL"
            LET GEN_ACCESS&=GEN_ACCESS&-$10000000

        endif

        IF @or(GEN_ACCESS&,$20000000)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=GENERIC_EXECUTE"
            LET GEN_ACCESS&=GEN_ACCESS&-$20000000

        endif

        IF @or(GEN_ACCESS&,$40000000)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=GENERIC_WRITE"
            LET GEN_ACCESS&=GEN_ACCESS&-$40000000

        endif

        IF @or(GEN_ACCESS&,$80000)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=WRITE_OWNER (Eigentümer ändern)"
            LET GEN_ACCESS&=GEN_ACCESS&-$80000

        endif

        IF @or(GEN_ACCESS&,$10000)=GEN_ACCESS&

            ADDSTRING "Enthaltenes Recht=_DELETE (Datei löschen)"
            LET GEN_ACCESS&=GEN_ACCESS&-$10000

        endif

        ADDSTRING ""
        ADDSTRING "*** Kontrolle ***"
        ADDSTRING "Überschuß bei File-Access=$"+@HEX$(GEN_ACCESS&)
        @EDITBOX(&quo
ing Rückgaben",1) Clearlist endif Wend

[keywords:e9426c3e21]
Umsetzen Rechte Zugrif Zugriffe Mapping GENERIC GENERIC_READ GENERIC_WRITE GENERIC_EXECUTE GENERIC_ALL map mapping Access masque mask
[/keywords:e9426c3e21]
 
01.07.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

1.471 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