GetProductInfo (kernel32)
Last changed: -174.25.166.10

.
Summary
TODO - a short description

C# Signature:

[DllImport("kernel32.dll", SetLastError=false)]
static extern bool GetProductInfo(
     int dwOSMajorVersion,
     int dwOSMinorVersion,
     int dwSpMajorVersion,
     int dwSpMinorVersion,
     out int pdwReturnedProductType

);

VB Signature:

TODO

User-Defined Types:

None.

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

Here's something that worked for me, the 0,0 for the service pack is what they used at MSN...

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace System_Info
{
     class Program
     {
     [DllImport("kernel32.dll", SetLastError = false)]
     static extern bool GetProductInfo(
          int dwOSMajorVersion,
          int dwOSMinorVersion,
          int dwSpMajorVersion,
          int dwSpMinorVersion,
          out int pdwReturnedProductType);  

     static void Main(string[] args)
     {

         int ProductNum;  

         GetProductInfo(
          Environment.OSVersion.Version.Major,
          Environment.OSVersion.Version.Minor,
          0,
          0,
          out ProductNum);

         Console.WriteLine(Environment.OSVersion.Version.Build);
         Console.WriteLine(Environment.OSVersion.Version.Major);
         Console.WriteLine(Environment.OSVersion.Version.MajorRevision);
         Console.WriteLine(Environment.OSVersion.Version.Minor);
         Console.WriteLine(Environment.OSVersion.Version.MinorRevision);
         Console.WriteLine(Environment.OSVersion.Version.Revision);

         Console.WriteLine(ProductNum);

         Console.ReadKey();
     }
     }
}

Added By CTS_AE ; )

Hope it works!

Documentation