| |
|
|
| Habe mal kurz die Betriebsysteme gewechselt, um mir im Netz noch ein paar Strukturen anzusehen. Hier schon mal das Auslesen der Gruppenbeschreibung als INC: KompilierenMarkierenSeparieren************** Lokale_Gruppenbeschreibung_auslesen.INC **************
******* Start der Prozedur zum Auslesen der Gruppenbeschreibung lokaler Gruppen *******
Proc Lese_lokale_Gruppenbeschreibung
Parameters Gruppenname$
Declare Fehler&,Buffer_Adresse&,Geterror_buffer$
DIM ACCOUNT_NAME#,256
DIM Gu_buffer#,8
DIM Gu_buffer_a#,261
LET Fehler&=@EXTERNAL("KERNEL32.DLL","MultiByteToWideChar",0,0,@ADDR(Gruppenname$),-1,ACCOUNT_NAME#,255)
LET FEHLER&=@External("Netapi32.DLL","NetLocalGroupGetInfo",0,ACCOUNT_NAME#,1,@ADDR(Buffer_Adresse&))
If fehler&<>0
Dim Geterror_buffer#,32000
@External("KERNEL32","FormatMessageA",$1000,0,fehler&,0,Geterror_buffer#,32000,0)
Let Geterror_buffer$=@String$(Geterror_buffer#,0)
Dispose Geterror_buffer#
@Messagebox(Geterror_buffer$,"Ein Fehler ist aufgetreten!",16)
else
CLEAR Gu_buffer#
@External("KERNEL32.DLL","RtlMoveMemory",Gu_buffer#,Buffer_Adresse&,8)
@External("KERNEL32.DLL","WideCharToMultiByte",0,0,@Long(Gu_buffer#,0),-1,Gu_buffer_a#,261,0,0)
ADDSTRING @String$(Gu_buffer_a#,0)
@External("KERNEL32.DLL","WideCharToMultiByte",0,0,@Long(Gu_buffer#,4),-1,Gu_buffer_a#,261,0,0)
ADDSTRING @String$(Gu_buffer_a#,0)
Endif
LET FEHLER&=@External("Netapi32.DLL","NetApiBufferFree",Buffer_Adresse&)
DISPOSE ACCOUNT_NAME#
DISPOSE Gu_buffer#
DISPOSE Gu_buffer_a#
Endproc
******* Ende der Prozedur zum Auslesen der Gruppenbeschreibung lokaler Gruppen *******
Hier Code zum Testen: KompilierenMarkierenSeparieren Ich hoffe, es klappt alles... |
|
|
| |
|
|
|
| Da fehlte noch ein Clearlist: KompilierenMarkierenSeparieren************** Lokale_Gruppenbeschreibung_auslesen.INC **************
******* Start der Prozedur zum Auslesen der Gruppenbeschreibung lokaler Gruppen *******
Proc Lese_lokale_Gruppenbeschreibung
Parameters Gruppenname$
Declare Fehler&,Buffer_Adresse&,Geterror_buffer$
DIM ACCOUNT_NAME#,256
DIM Gu_buffer#,8
DIM Gu_buffer_a#,261
Clearlist
LET Fehler&=@EXTERNAL("KERNEL32.DLL","MultiByteToWideChar",0,0,@ADDR(Gruppenname$),-1,ACCOUNT_NAME#,255)
LET FEHLER&=@External("Netapi32.DLL","NetLocalGroupGetInfo",0,ACCOUNT_NAME#,1,@ADDR(Buffer_Adresse&))
If fehler&<>0
Dim Geterror_buffer#,32000
@External("KERNEL32","FormatMessageA",$1000,0,fehler&,0,Geterror_buffer#,32000,0)
Let Geterror_buffer$=@String$(Geterror_buffer#,0)
Dispose Geterror_buffer#
@Messagebox(Geterror_buffer$,"Ein Fehler ist aufgetreten!",16)
else
CLEAR Gu_buffer#
@External("KERNEL32.DLL","RtlMoveMemory",Gu_buffer#,Buffer_Adresse&,8)
@External("KERNEL32.DLL","WideCharToMultiByte",0,0,@Long(Gu_buffer#,0),-1,Gu_buffer_a#,261,0,0)
ADDSTRING @String$(Gu_buffer_a#,0)
@External("KERNEL32.DLL","WideCharToMultiByte",0,0,@Long(Gu_buffer#,4),-1,Gu_buffer_a#,261,0,0)
ADDSTRING @String$(Gu_buffer_a#,0)
Endif
LET FEHLER&=@External("Netapi32.DLL","NetApiBufferFree",Buffer_Adresse&)
DISPOSE ACCOUNT_NAME#
DISPOSE Gu_buffer#
DISPOSE Gu_buffer_a#
Endproc
******* Ende der Prozedur zum Auslesen der Gruppenbeschreibung lokaler Gruppen *******
|
|
|
| |
|
|