devxlogo

Find out the Windows version a program require

Find out the Windows version a program require

Not all programs may run on all the Windows platforms. Often programs require at least a certain version of Windows. In most cases, this is due to the lack of specific functions in the SDK.

Anyway, to detect yourself whether a given EXE file can run under the current version of Windows (without running the program, of course) follow the next steps. First off, drop the declaration of the SHGetFileInfo API function into your program.

Type SHFILEINFO   hIcon As Long   iIcon As Long   dwAttributes As Long   szDisplayName As String * MAX_PATH   szTypeName As String * 80End TypePublic Const SHGFI_EXETYPE = &H2000Public Declare Function SHGetFileInfo Lib "shell32.dll" Alias "SHGetFileInfoA" _    ( ByVal pszPath As String, ByVal dwFileAttributes As Long, _    psfi As SHFILEINFO, ByVal cbFileInfo As Long, ByVal uFlags As Long ) As _    Long 

The high word contains the major and the minor number of the required Windows version. It is 400 for Windows 9x/NT 4.0, 500 for Windows 2000, 30A for Windows 3.x.

dw = SHGetFileInfo(exename, 0, sfi, Len(sfi), SHGFI_EXETYPE)hiWord = dw  &H10000

This tip is taken from the book VisualC++ Windows Shell Programming by Dino Esposito.

devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist