Code
'#####################################################################################
'######### Native XProfan Code von AHT #########
'######### erstellt für [URL]http://www.paules-pc-forum.de[/URL] #########
'#####################################################################################
Declare Ordner$, NtFehler%, Object_Attrib#, LSA_UNICODE#, Fehler%, IOStatus%, StatusBlock#
Declare UNICODE#, FileHandle%, FileInformation#, FileInformationLength&
Declare Offset%, FileNameLength&, Filename#, Ordner2$, Attributes&, PRIORITY&
Declare Offset1%
Ordner$ = ChooseDir$("Bitte Ordner auswählen:")
If Ordner$ <> ""
If Len(Ordner$) > 3
If Right$(Ordner$, 1) = "\"
Ordner$ = Left$(Ordner$, len(Ordner$)-1)
endif
endif
Ordner2$ = Ordner$
Ordner$ = "[URL='file://\\??\\']\\??\\[/URL]" + Ordner$
DIM Object_Attrib#, 24
DIM LSA_UNICODE#, 8
Dim UNICODE#, len(Ordner$) * 2 + 4
DIM StatusBlock#, 16
Dim Filename#, 600
Fehler% = External("kernel32", "MultiByteToWideChar", 0, 0, addr(Ordner$), -1, UNICODE#, int(len(Ordner$) + 2))
Long Object_Attrib#, 0 = 24
Long Object_Attrib#, 4 = 0
Long Object_Attrib#, 12 = $40 | $80
WORD LSA_UNICODE#, 0 = len(Ordner$) * 2
WORD LSA_UNICODE#, 2 = len(Ordner$) * 2 + 2
LONG LSA_UNICODE#, 4 = UNICODE#
Long Object_Attrib#, 8 = LSA_UNICODE#
NtFehler% = External("ntdll", "NtOpenFile", addr(FileHandle%), $1, Object_Attrib#, StatusBlock#, $4 | $2 | $1, $1)
IF NtFehler% = 0
FileInformationLength& = 30000000
Dim FileInformation#, FileInformationLength&
Clear StatusBlock#
PRIORITY& = External("kernel32", "GetPriorityClass", External("kernel32", "GetCurrentProcess"))
Fehler% = External("kernel32", "SetPriorityClass", external("kernel32", "GetCurrentProcess"), $40)
NtFehler% = External("ntdll", "NtQueryDirectoryFile", FileHandle%, 0, 0, 0, StatusBlock#, FileInformation#, FileInformationLength&, 2, 0, 0, 1)
Sleep 1
Fehler% = External("kernel32", "SetPriorityClass", external("kernel32", "GetCurrentProcess"), PRIORITY&)
Offset% = 0
If (NtFehler% = 0) or (NtFehler% = 259)
Repeat
FileNameLength& = Long(FileInformation#, Offset% + 60)
Attributes& = Long(FileInformation#, Offset% + 56)
Clear Filename#
Fehler% = External("kernel32", "WideCharToMultiByte", 0, 0, FileInformation# + Offset% + 68, int(FileNameLength& / 2), Filename#, 500 , 0, 0)
If Attributes& | $10 = Attributes&
AddString "[' + String$(Filename#, 0) + ']"
else
AddString String$(Filename#, 0)
endif
Offset1% = Long(FileInformation#, Offset%)
Offset% = Offset% + Long(FileInformation#, Offset%)
until Offset1% = 0
endif
NtFehler% = External("ntdll", "NtClose", FileHandle%)
Dispose FileInformation#
endif
EditBox("inhalt von " + Ordner2$, 0)
Dispose Filename#
Dispose StatusBlock#
Dispose UNICODE#
Dispose LSA_UNICODE#
Dispose Object_Attrib#
endif
Alles anzeigen