public Win7SuperBarForm() { InitializeComponent(); _fTotalProgress = 0.0f; //Information _infoUserName = System.Windows.Forms.SystemInformation.UserName; _infoUserDomain = System.Windows.Forms.SystemInformation.UserDomainName; this.textBox1.Text = "UserName: "******" UserDomain: " + _infoUserDomain; //OS version OSVersionInfo osvi3 = new OSVersionInfo(); osvi3.dwOSVersionInfoSize = (uint)Marshal.SizeOf(osvi3); bool result = LibWrap.GetVersionOS(ref osvi3); textBox5.Text = "OS Build: " + osvi3.dwBuildNumber.ToString() + " CSDVersion: " + osvi3.szCSDVersion; Microsoft.VisualBasic.Devices.ComputerInfo compInfo = new Microsoft.VisualBasic.Devices.ComputerInfo(); textBox3.Text = compInfo.OSFullName; textBox4.Text = compInfo.OSVersion; textBox2.Text = compInfo.OSPlatform; listBox1.MultiColumn = true; listBox1.Items.Add("OS Build: " + osvi3.dwBuildNumber.ToString()); listBox1.Items.Add("CSDVersion: " + osvi3.szCSDVersion); listBox1.Items.Add("OS Full Name: " + compInfo.OSFullName); listBox1.Items.Add("OS Version: " + compInfo.OSVersion); listBox1.Items.Add("OS Platform: " + compInfo.OSPlatform); _osV = new Cip.CipOsVersion(); }
public static int Main() { Console.WriteLine( "\nPassing OSVersionInfo as class" ); OSVersionInfo osvi = new OSVersionInfo(); osvi.a = 1; osvi.b = 2; if (LibWrap.GetVersionEx (osvi) != 5) return 1; if (osvi.a != 2) return 2; if (osvi.b != 3) return 3; Console.WriteLine( "A: {0}", osvi.a); Console.WriteLine( "B: {0}", osvi.b); Console.WriteLine( "\nPassing OSVersionInfo as struct" ); OSVersionInfo2 osvi2 = new OSVersionInfo2(); osvi2.a = 1; osvi2.b = 2; if (LibWrap.GetVersionEx2 (ref osvi2) != 5) return 4; if (osvi2.a != 2) return 5; if (osvi2.b != 3) return 6; Console.WriteLine( "A: {0}", osvi2.a); Console.WriteLine( "B: {0}", osvi2.b); Console.WriteLine ("Testing with extra parameters at the beginning"); OSVersionInfo osvi3 = new OSVersionInfo(); osvi3.a = 1; osvi3.b = 2; if (LibWrap.BugGetVersionEx (10, 10, 10, 10, 20, 20, 20, 20, osvi3) != 5) return 7; if (osvi3.a != 2) return 8; if (osvi3.b != 3) return 9; Console.WriteLine( "A: {0}", osvi.a); Console.WriteLine( "B: {0}", osvi.b); Console.WriteLine( "\nPassing OSVersionInfo as struct" ); return 0; }
/// <summary> /// Initialize OS Version info structure by system values /// We get this information from Win API call to GetVersionEx /// </summary> /// <returns></returns> private OSVersionInfo InitializeOSVersionInfo() { OSVersionInfo oSVersionInfo = new OSVersionInfo(); var versionInfo = default(MacNativeMethods.OSVersionInfo); MacNativeMethods.GetOSVersionInfo(ref versionInfo); oSVersionInfo.VersionInfo = versionInfo; return(oSVersionInfo); }
/// <summary> /// Get the build number of the OS /// </summary> /// <returns>Build number</returns> /// <remarks> /// For this method to work correctly, the calling application must have a manifest file /// that indicates the application supports Windows 10. /// See https://msdn.microsoft.com/en-us/library/windows/desktop/ms724451(v=vs.85).aspx for details /// </remarks> private static uint GetWindowsBuildNumber() { OSVersionInfo versionInfo = new OSVersionInfo(); versionInfo.OSVersionInfoSize = (uint)Marshal.SizeOf(versionInfo); GetVersionEx(ref versionInfo).ShouldBeTrue(); // 14393 -> RS1 build number versionInfo.BuildNumber.ShouldBeAtLeast(14393U); return(versionInfo.BuildNumber); }
/// <summary> /// Get the build number of the OS /// </summary> /// <returns>Build number</returns> /// <remarks> /// For this method to work correctly, the calling application must have a manifest file /// that indicates the application supports Windows 10. /// See https://msdn.microsoft.com/en-us/library/windows/desktop/ms724451(v=vs.85).aspx for details /// </remarks> public static uint GetWindowsBuildNumber() { OSVersionInfo versionInfo = new OSVersionInfo(); versionInfo.OSVersionInfoSize = (uint)Marshal.SizeOf(versionInfo); if (!GetVersionEx(ref versionInfo)) { ThrowLastWin32Exception($"Failed to get OS version info"); } return versionInfo.BuildNumber; }
public void TestGetSolarisVersion(string remoteVersionDirectoryPath, string versionFileName, string expectedVersionTextStart) { var osVersionInfo = new OSVersionInfo(); var versionInfoFile = VerifyTestFile(Path.Combine(remoteVersionDirectoryPath, versionFileName)); var versionText = osVersionInfo.GetFirstLineVersion(versionInfoFile.FullName); Console.WriteLine(versionText); Assert.True(versionText.StartsWith(expectedVersionTextStart)); }
public void TestGetOSVersion() { var runningLinux = Path.DirectorySeparatorChar == '/'; var osVersionInfo = new OSVersionInfo(); var version = osVersionInfo.GetOSVersion(); if (runningLinux) { var linuxVersion = osVersionInfo.GetLinuxVersion(); Assert.AreEqual(version, linuxVersion); return; } Console.WriteLine(version); var osInfo = Environment.OSVersion; switch (osInfo.Platform) { case PlatformID.Win32Windows: case PlatformID.Win32NT: Assert.True(version.StartsWith("Windows", StringComparison.OrdinalIgnoreCase)); break; case PlatformID.Win32S: Assert.True(version.StartsWith("Win32", StringComparison.OrdinalIgnoreCase)); break; case PlatformID.WinCE: Assert.True(version.StartsWith("WinCE", StringComparison.OrdinalIgnoreCase)); break; case PlatformID.Unix: var linuxVersion = osVersionInfo.GetLinuxVersion(); Assert.AreEqual(version, linuxVersion); break; case PlatformID.Xbox: Assert.True(version.StartsWith("Xbox", StringComparison.OrdinalIgnoreCase)); break; case PlatformID.MacOSX: Assert.True(version.StartsWith("MacOS", StringComparison.OrdinalIgnoreCase)); break; default: Assert.Ignore("Unknown OS Platform"); break; } }
/// <summary> /// Init OSVersionInfo object by current windows environment /// </summary> /// <returns></returns> public static OSVersionInfo GetOSVersionInfo() { System.OperatingSystem osVersionObj = System.Environment.OSVersion; OSVersionInfo osVersionInfo = new OSVersionInfo() { Name = GetOSName(osVersionObj), Major = osVersionObj.Version.Major, Minor = osVersionObj.Version.Minor, Build = osVersionObj.Version.Build }; return(osVersionInfo); }
public void TestGetLinuxVersion() { var etcDirectory = new DirectoryInfo("/etc"); if (!etcDirectory.Exists) { Assert.Ignore("/etc directory not found at " + etcDirectory.FullName); } var osVersionInfo = new OSVersionInfo(); var version = osVersionInfo.GetLinuxVersion(); Console.WriteLine(version); }
public static void Main() { Console.WriteLine("\nPassing OSVersionInfo as a class"); OSVersionInfo osvi = new OSVersionInfo(); osvi.OSVersionInfoSize = Marshal.SizeOf(osvi); NativeMethods.GetVersionEx(osvi); Console.WriteLine("Class size: {0}", osvi.OSVersionInfoSize); Console.WriteLine("OS Version: {0}.{1}", osvi.MajorVersion, osvi.MinorVersion); Console.WriteLine("\nPassing OSVersionInfo as a struct"); OSVersionInfo2 osvi2 = new OSVersionInfo2(); osvi2.OSVersionInfoSize = Marshal.SizeOf(osvi2); NativeMethods.GetVersionEx2(ref osvi2); Console.WriteLine("Struct size: {0}", osvi2.OSVersionInfoSize); Console.WriteLine("OS Version: {0}.{1}", osvi2.MajorVersion, osvi2.MinorVersion); }
public static extern int BugGetVersionEx(int a, int b, int c, int d, int e, int f, int g, int h, [In, Out] OSVersionInfo osvi);
public static extern short GetVersionEx(ref OSVersionInfo o);
public static extern bool GetVersionEx(ref OSVersionInfo lpVersionInfo);
public static IntPtr GetIcon(string FileName) { var icon = IntPtr.Zero; var sfi = new SHFileInfo(); var pidl = SHSimpleIDListFromPath(FileName); if ((pidl != IntPtr.Zero) && (FileName.Substring(0, 3) == "::{")) { SHGetFileInfo(pidl, 0, ref sfi, Marshal.SizeOf(typeof(SHFileInfo)), 0x1000 | 0x8); // SHGFI_ICONLOCATION | SHGFI_PIDL if (File.Exists(sfi.szDisplayName)) { FileName = sfi.szDisplayName; } } var ext = string.Empty; var i = FileName.LastIndexOf('.'); if (i >= 0) { ext = FileName.Substring(i).ToLower(); } if ((ext == ".exe") || (ext == ".ocx") || (ext == ".dll") || (ext == ".scr") || (ext == ".bin") || (ext == ".cpl")) { IntPtr hModule = LoadLibraryEx(FileName, IntPtr.Zero, 2 /*LOAD_LIBRARY_AS_DATAFILE*/); if (hModule != IntPtr.Zero) { if (sfi.iIcon >= 0) { EnumResourceName = string.Empty; EnumResourceIndex = sfi.iIcon; EnumResourceCounter = 0; EnumResourceNames(hModule, 3 + 11 /*DIFFERENCE*/, new EnumResNameProcDelegate(EnumResNameProc), IntPtr.Zero); } else { EnumResourceName = string.Format("#{0}", -sfi.iIcon); } icon = GetIcon(hModule, EnumResourceName); FreeLibrary(hModule); } } else if ((ext == ".ico") || (ext == ".icon")) { var iconSize = GetIconSize(FileName); icon = LoadImage(IntPtr.Zero, FileName, 1, iconSize, iconSize, 0x10 | 0x2); // LR_LOADFROMFILE | LR_COLOR } if (icon == IntPtr.Zero) { var osInfo = new OSVersionInfo(); osInfo.dwOSVersionInfoSize = Marshal.SizeOf(typeof(OSVersionInfo)); GetVersionEx(ref osInfo); var iidImageList = new Guid("46EB5926-582E-4017-9FDF-E8998DAA0950"); IImageList imageList = null; if ((osInfo.dwMajorVersion >= 6) && (SHGetImageList(4 /*SHIL_JUMBO*/, ref iidImageList, ref imageList) >= 0)) { SHGetFileInfo(FileName, 0, ref sfi, Marshal.SizeOf(typeof(SHFileInfo)), 0x4000 /*SHGFI_SYSICONINDEX*/); imageList.GetIcon(sfi.iIcon, 0x20 | 0x1, ref icon); // ILD_IMAGE | ILD_TRANSPARENT if (!AnalizeIcon256(icon)) { DestroyIcon(icon); icon = IntPtr.Zero; } } if ((icon == IntPtr.Zero) && (SHGetImageList(2 /*SHIL_EXTRALARGE*/, ref iidImageList, ref imageList) >= 0)) { SHGetFileInfo(FileName, 0, ref sfi, Marshal.SizeOf(typeof(SHFileInfo)), 0x4000 /*SHGFI_SYSICONINDEX*/); imageList.GetIcon(sfi.iIcon, 0x20 | 0x1, ref icon); // ILD_IMAGE | ILD_TRANSPARENT if (icon == (IntPtr)(-1)) { icon = IntPtr.Zero; } } } if ((icon == IntPtr.Zero) && (pidl != IntPtr.Zero) && (SHGetFileInfo(pidl, 0, ref sfi, Marshal.SizeOf(typeof(SHFileInfo)), 0x100 | 0x0 | 0x8) != IntPtr.Zero)) // SHGFI_ICON | SHGFI_LARGEICON | SHGFI_PIDL { icon = sfi.hIcon; } return(icon); }
private static extern Boolean GetVersionEx_Struct(ref OSVersionInfo osVersionInfo);
public static IntPtr GetIcon(string FileName) { var icon = IntPtr.Zero; var sfi = new SHFileInfo(); var pidl = SHSimpleIDListFromPath(FileName); if ((pidl != IntPtr.Zero) && (FileName.Substring(0, 3) == "::{")) { SHGetFileInfo(pidl, 0, ref sfi, Marshal.SizeOf(typeof(SHFileInfo)), 0x1000 | 0x8); // SHGFI_ICONLOCATION | SHGFI_PIDL if (File.Exists(sfi.szDisplayName)) { FileName = sfi.szDisplayName; } } var ext = string.Empty; var i = FileName.LastIndexOf('.'); if (i >= 0) { ext = FileName.Substring(i).ToLower(); } if ((ext == ".exe") || (ext == ".ocx") || (ext == ".dll") || (ext == ".scr") || (ext == ".bin") || (ext == ".cpl")) { IntPtr hModule = LoadLibraryEx(FileName, IntPtr.Zero, 2/*LOAD_LIBRARY_AS_DATAFILE*/); if (hModule != IntPtr.Zero) { if (sfi.iIcon >= 0) { EnumResourceName = string.Empty; EnumResourceIndex = sfi.iIcon; EnumResourceCounter = 0; EnumResourceNames(hModule, 3 + 11/*DIFFERENCE*/, new EnumResNameProcDelegate(EnumResNameProc), IntPtr.Zero); } else { EnumResourceName = string.Format("#{0}", -sfi.iIcon); } icon = GetIcon(hModule, EnumResourceName); FreeLibrary(hModule); } } else if ((ext == ".ico") || (ext == ".icon")) { var iconSize = GetIconSize(FileName); icon = LoadImage(IntPtr.Zero, FileName, 1, iconSize, iconSize, 0x10 | 0x2); // LR_LOADFROMFILE | LR_COLOR } if (icon == IntPtr.Zero) { var osInfo = new OSVersionInfo(); osInfo.dwOSVersionInfoSize = Marshal.SizeOf(typeof(OSVersionInfo)); GetVersionEx(ref osInfo); var iidImageList = new Guid("46EB5926-582E-4017-9FDF-E8998DAA0950"); IImageList imageList = null; if ((osInfo.dwMajorVersion >= 6) && (SHGetImageList(4/*SHIL_JUMBO*/, ref iidImageList, ref imageList) >= 0)) { SHGetFileInfo(FileName, 0, ref sfi, Marshal.SizeOf(typeof(SHFileInfo)), 0x4000/*SHGFI_SYSICONINDEX*/); imageList.GetIcon(sfi.iIcon, 0x20 | 0x1, ref icon); // ILD_IMAGE | ILD_TRANSPARENT if(!AnalizeIcon256(icon)) { DestroyIcon(icon); icon = IntPtr.Zero; } } if ((icon == IntPtr.Zero) && (SHGetImageList(2/*SHIL_EXTRALARGE*/, ref iidImageList, ref imageList) >= 0)) { SHGetFileInfo(FileName, 0, ref sfi, Marshal.SizeOf(typeof(SHFileInfo)), 0x4000/*SHGFI_SYSICONINDEX*/); imageList.GetIcon(sfi.iIcon, 0x20 | 0x1, ref icon); // ILD_IMAGE | ILD_TRANSPARENT if (icon == (IntPtr)(-1)) { icon = IntPtr.Zero; } } } if ((icon == IntPtr.Zero) && (pidl != IntPtr.Zero) && (SHGetFileInfo(pidl, 0, ref sfi, Marshal.SizeOf(typeof(SHFileInfo)), 0x100 | 0x0 | 0x8) != IntPtr.Zero)) // SHGFI_ICON | SHGFI_LARGEICON | SHGFI_PIDL { icon = sfi.hIcon; } return icon; }
private static extern bool GetVersionEx(ref OSVersionInfo osvi);
// 获得操作系统信息 private static string GetOSVersion() { // 定义一个字符串存储版本信息 string versionName = string.Empty; // 初始化一个结构体对象 OSVersionInfo osVersionInformation = new OSVersionInfo(); // 调用GetVersionEx 方法前,必须用SizeOf方法设置结构体中OSVersionInfoSize 成员 osVersionInformation.OSVersionInfoSize = (UInt32)Marshal.SizeOf(typeof(OSVersionInfo)); // 调用Win32函数 Boolean result = GetVersionEx_Struct(ref osVersionInformation); if (!result) { // 如果调用失败,获得最后的错误码 int errorcode = Marshal.GetLastWin32Error(); Win32Exception win32Exc = new Win32Exception(errorcode); Console.WriteLine("调用失败的错误信息为: " + win32Exc.Message); // 调用失败时返回为空字符串 return(string.Empty); } else { Console.WriteLine("调用成功"); switch (osVersionInformation.MajorVersion) { // 这里仅仅讨论 主版本号为6的情况,其他情况是一样讨论的 case 6: switch (osVersionInformation.MinorVersion) { case 0: if (osVersionInformation.ProductType == (Byte)0) { versionName = " Microsoft Windows Vista"; } else { versionName = "Microsoft Windows Server 2008"; // 服务器版本 } break; case 1: if (osVersionInformation.ProductType == (Byte)0) { versionName = " Microsoft Windows 7"; } else { versionName = "Microsoft Windows Server 2008 R2"; } break; case 2: versionName = "Microsoft Windows 8"; break; } break; default: versionName = "未知的操作系统"; break; } return(versionName); } }
private static extern bool GetVersionEx([In, Out] OSVersionInfo versionInformation);
static extern Boolean GetVersionEx([Out][In] OSVersionInfo versionInformation);
public static extern bool GetVersionEx(ref OSVersionInfo info);
private void Form1_Load(object sender, EventArgs e) { StringBuilder name = new StringBuilder(260); uint size = 260; GetComputerNameEx(COMPUTER_NAME_FORMAT.ComputerNamePhysicalDnsHostname, name, ref size); textBox1.Text = name.ToString(); int nsize = 64; GetUserName(name, ref nsize); textBox2.Text = name.ToString(); StringBuilder sbSystemDir = new StringBuilder(256); size = GetSystemDirectory(sbSystemDir, 256); textBox3.Text = sbSystemDir.ToString(); nsize = 255; StringBuilder sb = new StringBuilder(nsize); int len = (int)GetWindowsDirectory(sb, size); textBox4.Text = sb.ToString(0, len); size = 255; GetTempPath(size, sb); textBox5.Text = sb.ToString(); OSVersionInfo version = new OSVersionInfo(); version.dwOSVersionInfoSize = (uint)Marshal.SizeOf(version); GetVersionEx(version); textBox6.Text = version.dwMajorVersion.ToString() + '.' + version.dwMinorVersion.ToString(); int x, y; x = GetSystemMetrics(SystemMetric.SM_CXFULLSCREEN); y = GetSystemMetrics(SystemMetric.SM_CYFULLSCREEN); textBox7.Text = x.ToString() + 'x' + y.ToString(); uint pvParam = 0; SystemParametersInfo(SPI_GETCURSORSHADOW, 0, ref pvParam, 0); if (pvParam == 1) { button1.Text = "Отключить тень курсора"; } else { button1.Text = "Включить тень курсора"; } button2.Text = "Цвет COLOR_WINDOW:" + GetSysColor(COLOR_WINDOW).ToString("X2"); SYSTEMTIME time = new SYSTEMTIME(); //получаем текущее время GetSystemTime(ref time); textBox8.Text = time.wDay.ToString() + "." + time.wMonth.ToString("x2") + "." + time.wYear.ToString() + " " + time.wHour.ToString() + ":" + time.wMinute.ToString(); SystemPowerStatus SPS = new SystemPowerStatus();; GetSystemPowerStatus(out SPS); label9.Text = "Заряд батареи - " + SPS.flgBattery.ToString(); }
public static extern bool GetVersionEx([In, Out] OSVersionInfo osvi);
public static int Main() { Console.WriteLine("\nPassing OSVersionInfo as class"); OSVersionInfo osvi = new OSVersionInfo(); osvi.a = 1; osvi.b = 2; if (LibWrap.GetVersionEx(osvi) != 5) { return(1); } if (osvi.a != 2) { return(2); } if (osvi.b != 3) { return(3); } Console.WriteLine("A: {0}", osvi.a); Console.WriteLine("B: {0}", osvi.b); Console.WriteLine("\nPassing OSVersionInfo as struct"); OSVersionInfo2 osvi2 = new OSVersionInfo2(); osvi2.a = 1; osvi2.b = 2; if (LibWrap.GetVersionEx2(ref osvi2) != 5) { return(4); } if (osvi2.a != 2) { return(5); } if (osvi2.b != 3) { return(6); } Console.WriteLine("A: {0}", osvi2.a); Console.WriteLine("B: {0}", osvi2.b); Console.WriteLine("Testing with extra parameters at the beginning"); OSVersionInfo osvi3 = new OSVersionInfo(); osvi3.a = 1; osvi3.b = 2; if (LibWrap.BugGetVersionEx(10, 10, 10, 10, 20, 20, 20, 20, osvi3) != 5) { return(7); } if (osvi3.a != 2) { return(8); } if (osvi3.b != 3) { return(9); } Console.WriteLine("A: {0}", osvi.a); Console.WriteLine("B: {0}", osvi.b); Console.WriteLine("\nPassing OSVersionInfo as struct"); return(0); }
static extern bool GetVersionEx([Out][In] OSVersionInfo versionInformation);
private static extern bool GetVersionEx([In, Out] ref OSVersionInfo versionInfo);
internal static extern bool RtlGetVersion(OSVersionInfo versionInfo);