| |
|
|
| Hallo Profaner...
Ich suche nach einer Möglichkeit alle Gruppen eines Systems in einer ChoiceBox aufzulisten. Hat jemand eine Idee - einen Link??? |
|
|
| |
|
|
|
| Habs - glaube ich - schon. Schreibe morgen Code... |
|
|
| |
|
|
|
| OK, hier der Quelltext: KompilierenMarkierenSeparierenDEF @NetQueryDisplayInformation(7) !"Netapi32","NetQueryDisplayInformation"
DEF @NetApiBufferFree(1) !"Netapi32","NetApiBufferFree"
DEF @NetLocalGroupEnum(7) !"Netapi32","NetLocalGroupEnum"
Declare GU_LISTE&,Indexzähler&,GU_BUFFER_P#,GU_BUFFER_A#,GU_BUFFER#
Declare NT_Fehler&,Entry_COUNT#
Declare E_READ&,E_TOTAL&,resumehandle&
DEF @WideCharToMultiByte(8) !"kernel32","WideCharToMultiByte"
DEF @CopyMemory(3) !"kernel32","RtlMoveMemory"
Windowstyle 31
Windowtitle "User und Gruppen listen"
Window 0,0-640,440
DIM Entry_COUNT#,4
DIM GU_BUFFER_P#,4
DIM GU_BUFFER_A#,1000
DIM GU_BUFFER#,1000
LET GU_LISTE&=@CREATECHOICEBOX(%HWND,"",10,100,200,200)
LET NT_Fehler&=$EA
LET Resumehandle&=0
LET Indexzähler&=0
While NT_Fehler&=$EA
Clear Entry_COUNT#,GU_BUFFER_P#,GU_BUFFER_A#,GU_BUFFER#
LET NT_Fehler&=@NetLocalGroupEnum(0,0,GU_BUFFER_P#,-1,@ADDR(E_READ&),@ADDR(E_TOTAL&),@ADDR(Resumehandle&))
IF @or(NT_Fehler&=$EA,NT_Fehler&=0)
While Indexzähler&<E_READ&
@CopyMemory(GU_BUFFER#,@Long(GU_BUFFER_P#,0)+Indexzähler&*4,4)
@WideCharToMultiByte(0,0,@Long(GU_BUFFER#,0),-1,GU_BUFFER_A#,1000,0,0)
@AddChoice(GU_LISTE&,@String$(GU_BUFFER_A#,0))
LET INDEXZÄHLER&=INDEXZÄHLER&+1
wend
@NetApiBufferFree(@Long(GU_BUFFER_P#,0))
endif
wend
LET NT_Fehler&=$EA
LET Indexzähler&=0
While NT_Fehler&=$EA
Clear Entry_COUNT#,GU_BUFFER_P#,GU_BUFFER_A#,GU_BUFFER#
LET NT_Fehler&=@NetQueryDisplayInformation(0,3,Indexzähler&,1,-1,Entry_COUNT#,GU_BUFFER_P#)
IF @or(NT_Fehler&=$EA,NT_Fehler&=0)
@CopyMemory(GU_BUFFER#,@Long(GU_BUFFER_P#,0),20)
LET Indexzähler&=@Long(GU_BUFFER#,16)
@WideCharToMultiByte(0,0,@Long(GU_BUFFER#,0),-1,GU_BUFFER_A#,1000,0,0)
@AddChoice(GU_LISTE&,@String$(GU_BUFFER_A#,0))
@NetApiBufferFree(@Long(GU_BUFFER_P#,0))
endif
wend
LET NT_Fehler&=$EA
LET Indexzähler&=0
While NT_Fehler&=$EA
Clear Entry_COUNT#,GU_BUFFER_P#,GU_BUFFER_A#,GU_BUFFER#
LET NT_Fehler&=@NetQueryDisplayInformation(0,1,Indexzähler&,1,-1,Entry_COUNT#,GU_BUFFER_P#)
IF @or(NT_Fehler&=$EA,NT_Fehler&=0)
@CopyMemory(GU_BUFFER#,@Long(GU_BUFFER_P#,0),24)
LET Indexzähler&=@Long(GU_BUFFER#,20)
@WideCharToMultiByte(0,0,@Long(GU_BUFFER#,0),-1,GU_BUFFER_A#,1000,0,0)
@AddChoice(GU_LISTE&,@String$(GU_BUFFER_A#,0))
@NetApiBufferFree(@Long(GU_BUFFER_P#,0))
endif
wend
Dispose Entry_COUNT#
Dispose GU_BUFFER#
Dispose GU_BUFFER_A#
Dispose GU_BUFFER#
While 0=0
Wend
Ich brauche dringend ein paar Tests aud NT/2000/XP. Wer hilft mir? |
|
|
| |
|
|
|
| $ea?
Kleiner Tip: 1 ist schneller als 0=0.
Salve. |
|
|
| |
|
|
|
| Hallo IF...
Hast Recht - ist ein Relikt aus alten Basiczeiten. Läufts? |
|
|
| |
|
|
|
| Ja es funzt. |
|
|
| |
|
|
|
| Hallo IF...
Besten Dank! Hab gerade herausgefunden, wie man die Dimensione jedes beliebigen Speicherbereichs herausfinden kann, ohne XProfan zu besitzen => fehlte mir noch per PrivAktivate... |
|
|
| |
|
|
|
CB | Läuft auch tadellos unter WinNT!
LG, Christian |
|
|
| |
|
|
|
| |
|
| |
|
|