...irgendeinen Fehler mache ich, aber welchen? ![]()
Code
Declare NTString$, LSA_UNICODE_STRING#, Unicode#, DOS_Name$, StringBuffer_AHT#
Declare NT_FEHLER&, returlength&, FilePath#, Disposition#
Declare LSA_UNICODE_STRING2#, Unicode2#
Dim LSA_UNICODE_STRING#,8
DIM StringBuffer_AHT#,4002
DIM Unicode#,1000
Dim FilePath#,4
Dim Disposition#,4
DIM Unicode2#,2002
DIM LSA_UNICODE_STRING2#,8000
Clear LSA_UNICODE_STRING#,Unicode#
NTString$="\??\C:\"
External("kernel32.dll","MultiByteToWideChar",0,0,addr(NTString$),len(NTString$),LSA_UNICODE_STRING#+8,int(Len(NTString$)*2+2))
Word LSA_UNICODE_STRING#,0=len(NTString$)*2
Word LSA_UNICODE_STRING#,2=len(NTString$)*2+2
Long LSA_UNICODE_STRING#,4=LSA_UNICODE_STRING#+8
NT_FEHLER&=External("ntdll.dll","RtlNtPathNameToDosPathName",0,LSA_UNICODE_STRING#,Disposition#,FilePath#)
$D "",NT_FEHLER&
External("kernel32.dll","WideCharToMultiByte",0,0,Long(LSA_UNICODE_STRING#,4),Word(LSA_UNICODE_STRING#,0),StringBuffer_AHT#,4000,0,0)
Print Long(FilePath#,0)
DOS_Name$=String$(StringBuffer_AHT#,0)
'External("ntdll.dll","RtlFreeUnicodeString",LSA_UNICODE_STRING#)
Dispose LSA_UNICODE_STRING#
Dispose StringBuffer_AHT#
Dispose Unicode#
Dispose FilePath#
Dispose Disposition#
Dispose Unicode#
Dispose Unicode2#
Print DOS_Name$
While 1
Waitinput
wend
Alles anzeigen
Andersrum gehts scheinbar...
Code
Declare DosString$, LSA_UNICODE_STRING#, Realer_name$, StringBuffer_AHT#
Declare NT_FEHLER&, LSA_UNICODE_STRING2#, Unicode2#
Dim LSA_UNICODE_STRING#,2000
DIM StringBuffer_AHT#,4002
DIM Unicode2#,2002
DIM LSA_UNICODE_STRING2#,8
Clear LSA_UNICODE_STRING#
DosString$=$syspath
Word LSA_UNICODE_STRING2#,0=len(DosString$)*2
Word LSA_UNICODE_STRING2#,2=len(DosString$)*2+2
Long LSA_UNICODE_STRING2#,4=Unicode2#+8
External("kernel32.dll","MultiByteToWideChar",0,0,addr(DosString$),len(DosString$),Unicode2#,int(Len(DosString$)*2+2))
Word LSA_UNICODE_STRING#,2=1000
Long LSA_UNICODE_STRING#,4=LSA_UNICODE_STRING#+8
NT_FEHLER&=External("ntdll.dll","RtlDosPathNameToNtPathName_U",Unicode2#,LSA_UNICODE_STRING#,0,0)
Print NT_FEHLER&
External("kernel32.dll","WideCharToMultiByte",0,0,Long(LSA_UNICODE_STRING#,4),Word(LSA_UNICODE_STRING#,0),StringBuffer_AHT#,4000,0,0)
Realer_name$=String$(StringBuffer_AHT#,0)
External("ntdll.dll","RtlFreeUnicodeString",LSA_UNICODE_STRING#)
Dispose LSA_UNICODE_STRING#
Dispose StringBuffer_AHT#
Dispose Unicode2#
Dispose LSA_UNICODE_STRING2#
Print Realer_name$
While 1
Waitinput
wend
Alles anzeigen
:kratz: