Пример #1
0
        public static string EnvironmentToString(bool newline)
        {
            var environment = new StringBuilder();

            environment.Append("Software version: " + Application.ProductVersion);
            environment.Append(" (" + OsInfo.Bits + " bit)");

            if (newline)
            {
                environment.AppendLine();
            }
            else
            {
                environment.Append(", ");
            }
            environment.Append(".NET runtime version: " + Environment.Version);
            if (IsNet45OrNewer())
            {
                environment.Append("+");
            }
            if (newline)
            {
                environment.AppendLine();
            }
            else
            {
                environment.Append(", ");
            }
            environment.Append("Time: " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss zzz"));

            if (IsWindows)
            {
                if (newline)
                {
                    environment.AppendLine();
                }
                else
                {
                    environment.Append(", ");
                }
                environment.Append(string.Format("OS: {0} {1} {2} (x{3})  {4}", OsInfo.Name, OsInfo.Edition, OsInfo.ServicePack, OsInfo.Bits, OsInfo.VersionString));
                if (newline)
                {
                    environment.AppendLine();
                }
                else
                {
                    environment.Append(", ");
                }
                // Get some important information for fixing GDI related Problems
                environment.AppendFormat("GDI object count: {0}", User32Api.GetGuiResourcesGdiCount());
                if (newline)
                {
                    environment.AppendLine();
                }
                else
                {
                    environment.Append(", ");
                }
                environment.AppendFormat("User object count: {0}", User32Api.GetGuiResourcesUserCount());
            }
            else
            {
                if (newline)
                {
                    environment.AppendLine();
                }
                else
                {
                    environment.Append(", ");
                }
                environment.AppendFormat("OS: {0}", Environment.OSVersion.Platform);
            }
            if (newline)
            {
                environment.AppendLine();
            }
            else
            {
                environment.Append(", ");
            }
            // TODO: Is this needed?
            // environment.AppendFormat("Surface count: {0}", Surface.Count);

            return(environment.ToString());
        }