Example #1
0
        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;
    }
Example #3
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);
        }
Example #4
0
        /// <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);
        }
Example #5
0
        /// <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);
        }
Example #10
0
    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);
Example #12
0
 public static extern short GetVersionEx(ref OSVersionInfo o);
Example #13
0
 public static extern bool GetVersionEx(ref OSVersionInfo lpVersionInfo);
Example #14
0
        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);
        }
Example #15
0
 private static extern Boolean GetVersionEx_Struct(ref OSVersionInfo osVersionInfo);
Example #16
0
        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;
        }
Example #17
0
 private static extern bool GetVersionEx(ref OSVersionInfo osvi);
Example #18
0
        // 获得操作系统信息
        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);
Example #20
0
 static extern Boolean GetVersionEx([Out][In] OSVersionInfo versionInformation);
Example #21
0
 public static extern bool GetVersionEx(ref OSVersionInfo info);
Example #22
0
        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();
        }
Example #23
0
 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);
    }
Example #25
0
 static extern bool GetVersionEx([Out][In] OSVersionInfo versionInformation);
Example #26
0
 private static extern bool GetVersionEx(ref OSVersionInfo osvi);
Example #27
0
 private static extern bool GetVersionEx([In, Out] ref OSVersionInfo versionInfo);
Example #28
0
 internal static extern bool RtlGetVersion(OSVersionInfo versionInfo);