Für die später folgenden Funktion benötigen wir eine API-Funktion sowie eine Typdeklaration und einige
Konstanten.
Um die folgenden Funktion in eigenen Projekten nutzen zu können, muss sie zuerst im Kopf
des Formulars oder des Moduls deklariert werden:
Const MAX_PATH = 260
Private Type SHFILEINFO
hIcon As Long
iIcon As Long
dwAttributes As Long
szDisplayName As String * MAX_PATH
szTypeName As String * 80
End Type
Private Declare Function SHGetFileInfo Lib "Shell32" Alias "SHGetFileInfoA" (ByVal pszPath As Any, ByVal dwFileAttributes As Long, psfi As SHFILEINFO, ByVal cbFileInfo As Long, ByVal uFlags As Long) As Long
Const SHGFI_EXETYPE = &H2000&
Const EXE_WIN16 = &H454E
Const EXE_DOS16 = &H5A4D
Const EXE_WIN32 = &H4550
Binden Sie nun die folgenden Funktion in Ihr Projekt ein (ich empfehle, sie in einem Modul zu
platzieren, auf jeden Fall muss Sie im gleichen Modul oder der gleichen Form wie die API-Funktion
liegen):
Function GetExeType(ByVal Filename As String) As String
Dim dwExeVal As Long
Dim shfi As SHFILEINFO
Dim dwLowWord As Long
Dim dwHighWord As Long
Dim bHighWordLowByte As Byte
Dim bHighWordHighByte As Byte
Dim sRtn As String
dwExeVal = SHGetFileInfo(Filename, 0&, shfi, Len(shfi), SHGFI_EXETYPE)
dwLowWord = dwExeVal And &HFFFF&
Select Case dwLowWord
Case 0
sRtn = "(nicht ausführbar)"
Case EXE_WIN16
sRtn = "16 Bit Windows"
Case EXE_DOS16
sRtn = "DOS"
Case EXE_WIN32
sRtn = "32 Bit Windows"
Case Else
sRtn = "(unbekannt)"
End Select
GetExeType = sRtn
End Function
Sie können sich hier ein Beispiel als Projektdatei für Vb5 und Vb6 herunterladen.
Quellen: SHADOWare.de Letzte Änderung: 28.12.00 |
©2000 by SHADOWare, Thomas Bachem |