public AppContext(string appData, string vendorName, string productName, string[] args)
        {
            ShutdownMode = ShutdownMode.OnExplicitShutdown;
            Logger       = LogManager.GetLogger(GetType());
            _AppDataPath = appData;
            Directory.CreateDirectory(_AppDataPath);

            _CloseTimer = new Timer((state) => _TaskbarIcon.CloseBalloon());

            var settingsProvider = new RegistrySettingsProvider(vendorName, productName);

            Settings.Default.Providers.Add(settingsProvider);
            foreach (SettingsProperty prop in Settings.Default.Properties)
            {
                prop.Provider = settingsProvider;
            }
            Settings.Default.Reload();
            Settings.Default.PropertyChanged += (sender, e) => Settings.Default.Save();

            var opts = new OptionSet()
            {
                { "startup", (opt) => _OnStartShowOptionsWindow = false }
            };

            opts.Parse(args);
        }
        public static WirelessNetworkAddress GetNextFreeAddress()
        {
            int lastAddressUsed = RegistrySettingsProvider.GetLastUsedAddress();

            lastAddressUsed++;
            RegistrySettingsProvider.SaveLastUsedAddress(lastAddressUsed);

            string address = $"{lastAddressUsed:X6}";

            return(new WirelessNetworkAddress(address));
        }