public void CurrUsage(Nics nics, int n)
 {
     _cancel = false;
     // ...
     while (!_cancel)
     {
         // do some stuff
     }
 }
Esempio n. 2
0
        private void SetNicList()
        {
            Nics.Clear();
            var nics = NetworkInterface.GetAllNetworkInterfaces();

            foreach (var nic in nics)
            {
                if (nic.NetworkInterfaceType == NetworkInterfaceType.Ethernet ||
                    nic.NetworkInterfaceType == NetworkInterfaceType.GigabitEthernet ||
                    nic.NetworkInterfaceType == NetworkInterfaceType.Wireless80211)
                {
                    var entity = new NicsEntity
                    {
                        Name        = nic.Name,
                        Description = nic.Description
                    };
                    Nics.Add(entity);
                }
            }

            SelectedNicIndex = 0;
        }
Esempio n. 3
0
        private bool SetupHyperVSwitch()
        {
            try
            {
                // check if setup already
                PowerShell PS = PowerShell.Create();
                //PS.Streams.Warning.DataAdded += PSWarningStreamHandler;
                //PS.Streams.Error.DataAdded += PSErrorStreamHandler;
                //PS.Streams.Information.DataAdded += PSInfoStreamHandler;

                // check if bitlocker is enabled
                PS.AddScript("manage-bde -status C:");
                Collection <PSObject> results = PS.Invoke();
                PS.Streams.ClearStreams();
                PS.Commands.Clear();
                if (results.Count == 0)
                {
                    MessageBox.Show(Strings.BitLockerStatus, Strings.AboutSubtitle, MessageBoxButton.OK, MessageBoxImage.Error);
                }
                bool enabled = false;
                foreach (var result in results)
                {
                    if (result.ToString().Contains("Protection On"))
                    {
                        enabled = true;
                        break;
                    }
                }
                if (!enabled)
                {
                    MessageBox.Show(Strings.BitlockerDisabled, Strings.AboutSubtitle, MessageBoxButton.OK, MessageBoxImage.Warning);
                }

                // check if Hyper-V is enabled
                PS.AddScript("$hyperv = Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online");
                PS.AddScript("if($hyperv.State -eq 'Enabled') { write 'enabled' }");
                results = PS.Invoke();
                PS.Streams.ClearStreams();
                PS.Commands.Clear();
                if (results.Count == 0)
                {
                    MessageBox.Show(Strings.HyperVNotEnabled, Strings.AboutSubtitle, MessageBoxButton.OK, MessageBoxImage.Error);
                    return(false);
                }
                enabled = false;
                foreach (var result in results)
                {
                    if (result.ToString().Contains("enabled"))
                    {
                        enabled = true;
                        break;
                    }
                }
                if (!enabled)
                {
                    MessageBox.Show(Strings.HyperVNotEnabled, Strings.AboutSubtitle, MessageBoxButton.OK, MessageBoxImage.Error);
                    return(false);
                }

                PS.AddScript("get-vmswitch");
                results = PS.Invoke();
                PS.Streams.ClearStreams();
                PS.Commands.Clear();
                if (results.Count == 0)
                {
                    MessageBox.Show(Strings.VSwitchSetupFailed, Strings.AboutSubtitle, MessageBoxButton.OK, MessageBoxImage.Error);
                    return(false);
                }

                foreach (var vmSwitch in results)
                {
                    if (vmSwitch.ToString().Contains("(Name = 'host')"))
                    {
                        OutputLB += (Strings.VSwitchExists + "\n");
                        return(true);
                    }
                }

                PS.AddScript($"new-vmswitch -name host -NetAdapterName '{Nics.ElementAt(SelectedNicIndex).Name}' -AllowManagementOS $true");
                results = PS.Invoke();
                PS.Streams.ClearStreams();
                PS.Commands.Clear();
                if (results.Count == 0)
                {
                    MessageBox.Show(Strings.VSwitchSetupFailed, Strings.AboutSubtitle, MessageBoxButton.OK, MessageBoxImage.Error);
                    return(false);
                }

                // It takes about 10 seconds for the network interfaces to come back up
                Thread.Sleep(10000);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, Strings.AboutSubtitle, MessageBoxButton.OK, MessageBoxImage.Error);
                return(false);
            }

            return(true);
        }