
Code: Alles auswählen
;getfileversion per "Scripting.FileSystemObject"
Interface IFileSystem Extends IDispatch
get_Drives(a)
BuildPath(a,b,c)
GetDriveName(a,b)
GetParentFolderName(a,b)
GetFileName(a,b)
GetBaseName(a,b)
GetExtensionName(a,b)
GetAbsolutePathName(a,b)
GetTempName(a)
DriveExists(a,b)
FileExists(a,b)
FolderExists(a,b)
GetDrive(a,b)
GetFile(a,b)
GetFolder(a,b)
GetSpecialFolder(a,b)
DeleteFile(a,b)
DeleteFolder(a,b)
MoveFile(a,b)
MoveFolder(a,b)
CopyFile(a,b,c)
CopyFolder(a,b,c)
CreateFolder(a,b)
CreateTextFile(a,b,c,d)
OpenTextFile(a,b,c,d,e)
EndInterface
Interface IFileSystem3 Extends IFileSystem
GetStandardStream(a,b,c)
GetFileVersion(a,b)
EndInterface
Procedure.s Uni2Ansi(*Unicode.l)
size.l = WideCharToMultiByte_(#CP_ACP, 0, *Unicode, -1, #Null, #Null, #Null, #Null)
ansi.s=Space(size)
WideCharToMultiByte_(#CP_ACP, 0, *Unicode, -1, @ansi, size, #Null, #Null)
ProcedureReturn ansi
EndProcedure
CoInitialize_(0)
If CoCreateInstance_(?CLSID_FileSystemObject,0,1,?IID_IFileSystem3,@Object.IFileSystem3) = 0
file.s = "c:\windows\system32\user32.dll"
SHStrDup_(@file,@file_in_unicode_pointer) ;in unicode umwandeln
Object\GetFileVersion(file_in_unicode_pointer,@version_in_unicode_pointer)
Debug uni2ansi(version_in_unicode_pointer)
Object\Release()
EndIf
CoUninitialize_()
DataSection
CLSID_FileSystemObject:
Data.l $0D43FE01
Data.w $F093,$11CF
Data.b $89,$40,$00,$A0,$C9,$05,$42,$28
IID_IFileSystem3:
Data.l $2A0B9D10
Data.w $4B87,$11d3
Data.b $A9,$7A,$00,$10,$4B,$36,$5C,$9F
EndDataSection
End