Description
The FileSubType
property allows you to get additional information about a device driver, font file or virtual device file. This property returns 0 for a file of another type (for example, an executable).
Declaration
aqFileVersionInfoObj.FileSubType
Read-Only Property | Integer |
aqFileVersionInfoObj | An expression, variable or parameter that specifies a reference to an aqFileVersionInfo object |
Applies To
The property is applied to the following object:
Property Value
If the file is a device driver (that is, if FileType
is VFT_DRV
), the property returns one of the following constants defined in the Win32API
object:
Constant | Value | Description |
---|---|---|
VFT2_UNKNOWN |
0 | Unknown driver type. |
VFT2_DRV_PRINTER |
1 | A printer driver. |
VFT2_DRV_KEYBOARD |
2 | A keyboard driver. |
VFT2_DRV_LANGUAGE |
3 | A language driver. |
VFT2_DRV_DISPLAY |
4 | A display driver. |
VFT2_DRV_MOUSE |
5 | A mouse driver. |
VFT2_DRV_NETWORK |
6 | A network driver. |
VFT2_DRV_SYSTEM |
7 | A system driver. |
VFT2_DRV_INSTALLABLE |
8 | An installable driver. |
VFT2_DRV_SOUND |
9 | A sound driver. |
VFT2_DRV_COMM |
10 | A communications driver. |
VFT2_DRV_VERSIONED_PRINTER |
12 | A versioned printer driver. |
If the file contains a font (that is, if FileType
is VFT_FONT
), the property returns one of the following constants defined in the Win32API
object:
Constant | Value | Description |
---|---|---|
VFT2_UNKNOWN |
0 | Unknown font type. |
VFT2_FONT_RASTER |
1 | A raster font. |
VFT2_FONT_VECTOR |
2 | A vector font. |
VFT2_FONT_TRUETYPE |
3 | A TrueType font. |
If the file is a virtual device (that is, if FileType
is VFT_VXD
), the property returns the virtual-device identifier included in the virtual-device control block.
If the file is an application, a dynamic-link library, a static-link library or a file of an unknown type (that is, if FileType
is either VFT_APP
, VFT_DLL
, VFT_STATIC_LIB
or VFT_UNKNOWN
), the property returns 0.
Example
The code below determines a file's sub-type using the type of the specified file.
JavaScript, JScript
function VersionInfoSample()
{
var FileName = Sys.OSInfo.WindowsDirectory + "\\notepad.exe";
var VerInfo = aqFileSystem.GetFileInfo(FileName).VersionInfo;
Log.Message("File sub type: " + GetFileSubTypeStr(VerInfo.FileType, VerInfo.FileSubType));
}
function GetFileSubTypeStr(FileType, FileSubType)
{
switch (FileType)
{
case VFT_VXD : return "a virtual device file with the " + FileSubType + " identifier.";
default:
switch (FileSubType)
{
case 0 : return "unknown.";
case VFT2_DRV_PRINTER : return "a printer driver.";
case VFT2_DRV_KEYBOARD : return "a keyboard driver.";
case VFT2_DRV_LANGUAGE : return "a language driver.";
case VFT2_DRV_DISPLAY : return "a display driver.";
case VFT2_DRV_MOUSE : return "a mouse driver.";
case VFT2_DRV_NETWORK : return "a network driver.";
case VFT2_DRV_SYSTEM : return "a system driver.";
case VFT2_DRV_INSTALLABLE : return "an installable driver.";
case VFT2_DRV_SOUND : return "a sound driver.";
case VFT2_DRV_COMM : return "a communications driver.";
case VFT2_DRV_VERSIONED_PRINTER : return "a versioned printer driver.";
case VFT2_FONT_RASTER : return "a rester font.";
case VFT2_FONT_VECTOR : return "a vector font.";
case VFT2_FONT_TRUETYPE : return "a TrueType font.";
default: return "unknown.";
}
}
}
Python
def VersionInfoSample():
FileName = Sys.OSInfo.WindowsDirectory + "\\notepad.exe"
VerInfo = aqFileSystem.GetFileInfo(FileName).VersionInfo
Log.Message("File sub type: " + GetFileSubTypeStr(VerInfo.FileType, VerInfo.FileSubType))
def GetFileSubTypeStr(FileType, FileSubType):
if FileType == VFT_VXD:
return "a virtual device file with the " + FileSubType + " identifier."
else:
if FileSubType == 0:
return "unknown."
elif FileSubType == VFT2_DRV_PRINTER:
return "a printer driver."
elif FileSubType == VFT2_DRV_KEYBOARD:
return "a keyboard driver."
elif FileSubType == VFT2_DRV_LANGUAGE:
return "a language driver."
elif FileSubType == VFT2_DRV_DISPLAY:
return "a display driver."
elif FileSubType == VFT2_DRV_MOUSE:
return "a mouse driver."
elif FileSubType == VFT2_DRV_NETWORK:
return "a network driver."
elif FileSubType == VFT2_DRV_SYSTEM:
return "a system driver."
elif FileSubType == VFT2_DRV_INSTALLABLE:
return "an installable driver."
elif FileSubType == VFT2_DRV_SOUND:
return "a sound driver."
elif FileSubType == VFT2_DRV_COMM:
return "a communications driver."
elif FileSubType == VFT2_DRV_VERSIONED_PRINTER:
return "a versioned printer driver."
elif FileSubType == VFT2_FONT_RASTER:
return "a raster font."
elif FileSubType == VFT2_FONT_VECTOR:
return "a vector font."
elif FileSubType == VFT2_FONT_TRUETYPE:
return "a TrueType font."
else:
return "unknown."
VBScript
Sub VersionInfoSample
Dim FileName, VerInfo
FileName = Sys.OSInfo.WindowsDirectory & "\notepad.exe"
Set VerInfo = aqFileSystem.GetFileInfo(FileName).VersionInfo
Log.Message "File sub type: " & GetFileSubTypeStr(VerInfo.FileType, VerInfo.FileSubType)
End Sub
Function GetFileSubTypeStr(FileType, FileSubType)
Select Case FileType
Case VFT_VXD GetFileSubTypeStr = "a virtual device file with the " & FileSubType & " identifier."
Case Else
Select Case FileSubType
Case 0 GetFileSubTypeStr = "unknown."
Case VFT2_DRV_PRINTER GetFileSubTypeStr = "a printer driver."
Case VFT2_DRV_KEYBOARD GetFileSubTypeStr = "a keyboard driver."
Case VFT2_DRV_LANGUAGE GetFileSubTypeStr = "a language driver."
Case VFT2_DRV_DISPLAY GetFileSubTypeStr = "a display driver."
Case VFT2_DRV_MOUSE GetFileSubTypeStr = "a mouse driver."
Case VFT2_DRV_NETWORK GetFileSubTypeStr = "a network driver."
Case VFT2_DRV_SYSTEM GetFileSubTypeStr = "a system driver."
Case VFT2_DRV_INSTALLABLE GetFileSubTypeStr = "an installable driver."
Case VFT2_DRV_SOUND GetFileSubTypeStr = "a sound driver."
Case VFT2_DRV_COMM GetFileSubTypeStr = "a communications driver."
Case VFT2_DRV_VERSIONED_PRINTER GetFileSubTypeStr = "a versioned printer driver."
Case VFT2_FONT_RASTER GetFileSubTypeStr = "a raster font."
Case VFT2_FONT_VECTOR GetFileSubTypeStr = "a vector driver."
Case VFT2_FONT_TRUETYPE GetFileSubTypeStr = "a TrueType driver."
Case Else GetFileSubTypeStr = "unknown."
End Select
End Select
End Function
DelphiScript
function GetFileSubTypeStr(FileType, FileSubType);
begin
case FileType of
VFT_VXD : Result := 'a virtual device file with the ' + FileSubType + ' identifier.';
else
case FileSubType of
0 : Result := 'unknown';
VFT2_DRV_PRINTER : Result := 'a printer driver.';
VFT2_DRV_KEYBOARD : Result := 'a keyboard driver.';
VFT2_DRV_LANGUAGE : Result := 'a language driver.';
VFT2_DRV_DISPLAY : Result := 'a display driver.';
VFT2_DRV_MOUSE : Result := 'a mouse driver.';
VFT2_DRV_NETWORK : Result := 'a network driver.';
VFT2_DRV_SYSTEM : Result := 'a system driver.';
VFT2_DRV_INSTALLABLE : Result := 'an installable driver.';
VFT2_DRV_SOUND : Result := 'a sound driver.';
VFT2_DRV_COMM : Result := 'a communications driver.';
VFT2_DRV_VERSIONED_PRINTER : Result := 'a versioned printer driver.';
VFT2_FONT_RASTER : Result := 'a rester font.';
VFT2_FONT_VECTOR : Result := 'a vector font.';
VFT2_FONT_TRUETYPE : Result := 'a TrueType font.';
else
Result := 'unknown.';
end;
end;
end;
procedure VersionInfoSample;
var FileName, VerInfo;
begin
FileName := Sys.OSInfo.WindowsDirectory + '\notepad.exe';
VerInfo := aqFileSystem.GetFileInfo(FileName).VersionInfo;
Log.Message('File sub type: ' + GetFileSubTypeStr(VerInfo.FileType, VerInfo.FileSubType));
end;
C++Script, C#Script
function VersionInfoSample()
{
var FileName = Sys["OSInfo"]["WindowsDirectory"] + "\\notepad.exe";
var VerInfo = aqFileSystem["GetFileInfo"](FileName)["VersionInfo"];
Log.Message("File sub type: " + GetFileSubTypeStr( VerInfo["FileType"], VerInfo["FileSubType"] ));
}
function GetFileSubTypeStr(FileType, FileSubType)
{
switch (FileType)
{
case VFT_VXD : return "a virtual device file with the" + FileSubType + "identifier.";
default:
switch (FileSubType)
{
case 0 : return "unknown.";
case VFT2_DRV_PRINTER : return "a printer driver.";
case VFT2_DRV_KEYBOARD : return "a keyboard driver.";
case VFT2_DRV_LANGUAGE : return "a language driver.";
case VFT2_DRV_DISPLAY : return "a display driver.";
case VFT2_DRV_MOUSE : return "a mouse driver.";
case VFT2_DRV_NETWORK : return "a network driver.";
case VFT2_DRV_SYSTEM : return "a system driver.";
case VFT2_DRV_INSTALLABLE : return "an installable driver.";
case VFT2_DRV_SOUND : return "a sound driver.";
case VFT2_DRV_COMM : return "a communications driver.";
case VFT2_DRV_VERSIONED_PRINTER : return "a versioned printer driver.";
case VFT2_FONT_RASTER : return "a rester font.";
case VFT2_FONT_VECTOR : return "a vector font.";
case VFT2_FONT_TRUETYPE : return "a TrueType font.";
default: return "unknown.";
}
}
}