Ejemplo n.º 1
0
        public static EnumWinVersion GetWinVersionNumber()
        {
            OperatingSystem os            = Environment.OSVersion;
            EnumWinVersion  versionNumber = EnumWinVersion.UNKNOWN;

            switch (os.Version.Major)
            {
            case 4:
                switch (os.Version.Minor)
                {
                case 0:
                    versionNumber = EnumWinVersion.WIN95;
                    break;

                case 10:
                    versionNumber = EnumWinVersion.WIN98;
                    break;

                case 90:
                    versionNumber = EnumWinVersion.WINME;
                    break;

                default:
                    versionNumber = EnumWinVersion.WIN98;
                    break;
                }
                break;

            case 5:
                switch (os.Version.Minor)
                {
                case 0:
                    versionNumber = EnumWinVersion.WIN2000;
                    break;

                case 1:
                    versionNumber = EnumWinVersion.WINXP;
                    break;

                case 2:
                    versionNumber = EnumWinVersion.WIN2003;
                    break;

                default:
                    versionNumber = EnumWinVersion.WINXP;
                    break;
                }
                break;

            case 6:
                switch (os.Version.Minor)
                {
                case 0:
                    versionNumber = EnumWinVersion.WINVISTA;
                    break;

                case 1:
                    versionNumber = EnumWinVersion.WIN7;
                    break;

                case 2:
                    versionNumber = EnumWinVersion.WIN8;
                    break;

                case 3:
                    versionNumber = EnumWinVersion.WIN81;
                    break;

                default:
                    versionNumber = EnumWinVersion.WIN7;
                    break;
                }
                break;

            case 10:
                switch (os.Version.Minor)
                {
                case 0:
                    versionNumber = EnumWinVersion.WIN10;
                    break;

                default:
                    versionNumber = EnumWinVersion.WIN10;
                    break;
                }
                break;

            default:
                versionNumber = EnumWinVersion.UNKNOWN;
                break;
            }

            return(versionNumber);
        }
Ejemplo n.º 2
0
        private void FormMain_Load(object sender, EventArgs e)
        {
            ///////////////////////////////////////////////////////////////////
            // Check .NET Framework version
            int FWVersion = Utils.GetFrameworkVersion();
            if (FWVersion < 394802) // Less than .NET Framework 4.6.2
            {
                MessageBox.Show("The application requires .NET Framework version = 4.6.2\nApplication will be stopped. Please update your .NET Framework and try again.", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Application.Exit();
            }
            ///////////////////////////////////////////////////////////////////

            ///////////////////////////////////////////////////////////////////
            // Version number
            ///////////////////////////////////////////////////////////////////            
            using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("AMPClient.version.txt"))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    VersionBuildNumber = reader.ReadToEnd();
                }
            }
            try
            {
                Version version = Assembly.GetExecutingAssembly().GetName().Version;
                VersionNumber = String.Format("{0}.{1}.{2}", version.Major, version.Minor, VersionBuildNumber);
            }
            catch (Exception E)
            {
                String S = E.ToString();
            }
            ///////////////////////////////////////////////////////////////////

            ///////////////////////////////////////////////////////////////////
            // Get operation system version
            EnumWinVersion WinVersion = Utils.GetWinVersionNumber();
            if (WinVersion != EnumWinVersion.WIN7)
                WinVersion = EnumWinVersion.WIN10;

            ///////////////////////////////////////////////////////////////////
            // Get full service list
            FullServiceList = new List<ServiceItem>();
            ClassWinServiceHelper.GetFullServiceList(FullServiceList);

            ///////////////////////////////////////////////////////////////////
            // Get service list for current operation system
            WWinServiceList = new List<ServiceItem>();
            ClassWinServiceHelper.GetWWinServiceList(WWinServiceList, appSet, WinVersion);

            ///////////////////////////////////////////////////////////////////
            // Get service list to be processed
            // ProcServiceList = FullServiceList - WWinServiceList

            if (WWinServiceList.Count > 0)
                ProcServiceList = FullServiceList.Except(WWinServiceList, new ServiceItemComparer()).ToList();

            ///////////////////////////////////////////////////////////////////
            // FOR DEBUG ONLY
            //ProcServiceList = new List<ServiceItem>();
            //ProcServiceList.Add(new ServiceItem() { DisplayName = "Print Spooler", ServiceName = "Spooler", ServiceAction = EnumServiceAction.STOP });

            if (isDebugEnabled == true)
            {
                String fileFullServiceList = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "FullServiceList.csv");
                File.WriteAllLines(fileFullServiceList, FullServiceList.Select(x => String.Format("{0},{1}", x.ServiceName, x.DisplayName)).ToArray());
                String fileWWinServiceList = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "WWinServiceList.csv");
                File.WriteAllLines(fileWWinServiceList, WWinServiceList.Select(x => String.Format("{0},{1}", x.ServiceName, x.DisplayName)).ToArray());
                String fileProcServiceList = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "ProcServiceList.csv");
                File.WriteAllLines(fileProcServiceList, ProcServiceList.Select(x => String.Format("{0},{1}", x.ServiceName, x.DisplayName)).ToArray());
            }

            ///////////////////////////////////////////////////////////////////
            // Set previous state indication
            switch (appSet.PreviousState)
            {
                case EnumSwitcherState.OFF:
                    ampControlPanel.SwitcherState = EnumSwitcherState.OFF;
                    break;
                case EnumSwitcherState.ON:
                    ampControlPanel.SwitcherState = EnumSwitcherState.ON;
                    break;
                default:
                    ampControlPanel.SwitcherState = EnumSwitcherState.OFF;
                    break;
            }
            InitializeGUI_ON_OFF();
            AudioSrvPatch();
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Get whitelisted service list
        /// </summary>
        /// <param name="WWinServiceList">Whitelisted service list</param>
        /// <param name="appSet">Application settings object</param>
        /// <param name="WinVersion">Windows version</param>
        /// <returns>Whitelisted services count</returns>
        public static int GetWWinServiceList(List <ServiceItem> WWinServiceList, ApplicationSettings appSet, EnumWinVersion WinVersion)
        {
            if (WWinServiceList != null)
            {
                WWinServiceList.Clear();
            }
            else
            {
                WWinServiceList = new List <ServiceItem>();
            }

            ///////////////////////////////////////////////////////////////////
            // Load whiteliste services from settings file
            if ((appSet != null) && (appSet.ServiceList.Count > 0))
            {
                foreach (var item in appSet.ServiceList)
                {
                    WWinServiceList.Add(new ServiceItem()
                    {
                        ServiceName = item.ServiceName, DisplayName = item.DisplayName, ServiceAction = item.ServiceAction
                    });
                }
            }
            else
            {
                ///////////////////////////////////////////////////////////////
                // Parse whitelisted service list from the config file
                String profileName = String.Format("{0}.profile", WinVersion);
                if (File.Exists(profileName))
                {
                    String[] data = File.ReadAllLines(profileName);

                    foreach (string line in data)
                    {
                        string[] d = line.Split('\t');

                        Int32 ActionCode;
                        Int32.TryParse(d[2].ToString(), out ActionCode);

                        WWinServiceList.Add(new ServiceItem()
                        {
                            ServiceName   = d[0].ToString(),
                            DisplayName   = d[1].ToString(),
                            ServiceAction = (EnumServiceAction)ActionCode
                        });
                    }

                    ///////////////////////////////////////////////////////////
                    // Save parsed whitelist in settings file
                    foreach (var item in WWinServiceList)
                    {
                        appSet.ServiceList.Add(new ServiceItem()
                        {
                            ServiceName = item.ServiceName, DisplayName = item.DisplayName, ServiceAction = item.ServiceAction
                        });
                    }
                    appSet.Save();
                }
            }
            return(WWinServiceList.Count);
        }