소스 검색

Preparing for next version

deadmoon 4 년 전
부모
커밋
fbce7146be
6개의 변경된 파일242개의 추가작업 그리고 57개의 파일을 삭제
  1. 12 34
      Optimizer/MainForm.Designer.cs
  2. 40 7
      Optimizer/MainForm.cs
  3. 83 0
      Optimizer/NetworkAdapter.cs
  4. 105 0
      Optimizer/NetworkMonitor.cs
  5. 2 0
      Optimizer/Optimizer.csproj
  6. 0 16
      Optimizer/Utilities.cs

+ 12 - 34
Optimizer/MainForm.Designer.cs

@@ -33,6 +33,7 @@ namespace Optimizer
             this.components = new System.ComponentModel.Container();
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
             this.tpanel = new System.Windows.Forms.Panel();
+            this.txtNetFw = new System.Windows.Forms.Label();
             this.linkUpdate = new System.Windows.Forms.LinkLabel();
             this.lblLab = new System.Windows.Forms.Label();
             this.txtBitness = new System.Windows.Forms.Label();
@@ -178,7 +179,6 @@ namespace Optimizer
             this.lblFootprint = new System.Windows.Forms.Label();
             this.cleanDriveB = new System.Windows.Forms.Button();
             this.pingerTab = new System.Windows.Forms.TabPage();
-            this.btnSpeedtest = new System.Windows.Forms.Button();
             this.flushCacheB = new System.Windows.Forms.Button();
             this.btnExport = new System.Windows.Forms.Button();
             this.copyB = new System.Windows.Forms.Button();
@@ -322,7 +322,6 @@ namespace Optimizer
             this.trayExit = new System.Windows.Forms.ToolStripMenuItem();
             this.launcherIcon = new System.Windows.Forms.NotifyIcon(this.components);
             this.helpBox = new System.Windows.Forms.ToolTip(this.components);
-            this.txtNetFw = new System.Windows.Forms.Label();
             this.stickySw = new Optimizer.ToggleSwitch();
             this.smartScreenSw = new Optimizer.ToggleSwitch();
             this.faxSw = new Optimizer.ToggleSwitch();
@@ -639,6 +638,17 @@ namespace Optimizer
             this.tpanel.Size = new System.Drawing.Size(870, 64);
             this.tpanel.TabIndex = 1;
             // 
+            // txtNetFw
+            // 
+            this.txtNetFw.AutoSize = true;
+            this.txtNetFw.ForeColor = System.Drawing.Color.Silver;
+            this.txtNetFw.Location = new System.Drawing.Point(188, 42);
+            this.txtNetFw.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+            this.txtNetFw.Name = "txtNetFw";
+            this.txtNetFw.Size = new System.Drawing.Size(37, 15);
+            this.txtNetFw.TabIndex = 70;
+            this.txtNetFw.Text = "netfw";
+            // 
             // linkUpdate
             // 
             this.linkUpdate.ActiveLinkColor = System.Drawing.Color.Goldenrod;
@@ -2578,7 +2588,6 @@ namespace Optimizer
             // pingerTab
             // 
             this.pingerTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
-            this.pingerTab.Controls.Add(this.btnSpeedtest);
             this.pingerTab.Controls.Add(this.flushCacheB);
             this.pingerTab.Controls.Add(this.btnExport);
             this.pingerTab.Controls.Add(this.copyB);
@@ -2597,25 +2606,6 @@ namespace Optimizer
             this.pingerTab.TabIndex = 13;
             this.pingerTab.Text = "Pinger";
             // 
-            // btnSpeedtest
-            // 
-            this.btnSpeedtest.BackColor = System.Drawing.Color.DodgerBlue;
-            this.btnSpeedtest.Enabled = false;
-            this.btnSpeedtest.FlatAppearance.BorderColor = System.Drawing.Color.DodgerBlue;
-            this.btnSpeedtest.FlatAppearance.MouseDownBackColor = System.Drawing.Color.RoyalBlue;
-            this.btnSpeedtest.FlatAppearance.MouseOverBackColor = System.Drawing.Color.RoyalBlue;
-            this.btnSpeedtest.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
-            this.btnSpeedtest.ForeColor = System.Drawing.Color.White;
-            this.btnSpeedtest.Location = new System.Drawing.Point(732, 14);
-            this.btnSpeedtest.Margin = new System.Windows.Forms.Padding(2);
-            this.btnSpeedtest.Name = "btnSpeedtest";
-            this.btnSpeedtest.Size = new System.Drawing.Size(110, 29);
-            this.btnSpeedtest.TabIndex = 85;
-            this.btnSpeedtest.Text = "Speed Test";
-            this.btnSpeedtest.UseVisualStyleBackColor = false;
-            this.btnSpeedtest.Visible = false;
-            this.btnSpeedtest.Click += new System.EventHandler(this.btnSpeedtest_Click);
-            // 
             // flushCacheB
             // 
             this.flushCacheB.BackColor = System.Drawing.Color.DodgerBlue;
@@ -4634,17 +4624,6 @@ namespace Optimizer
             this.helpBox.UseAnimation = false;
             this.helpBox.UseFading = false;
             // 
-            // txtNetFw
-            // 
-            this.txtNetFw.AutoSize = true;
-            this.txtNetFw.ForeColor = System.Drawing.Color.Silver;
-            this.txtNetFw.Location = new System.Drawing.Point(188, 42);
-            this.txtNetFw.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
-            this.txtNetFw.Name = "txtNetFw";
-            this.txtNetFw.Size = new System.Drawing.Size(37, 15);
-            this.txtNetFw.TabIndex = 70;
-            this.txtNetFw.Text = "netfw";
-            // 
             // stickySw
             // 
             this.stickySw.Location = new System.Drawing.Point(337, 121);
@@ -7296,7 +7275,6 @@ namespace Optimizer
         private ColoredRadioButton radioHellenic;
         private ColoredRadioButton radioEnglish;
         private ColoredRadioButton radioRussian;
-        private Button btnSpeedtest;
         private PictureBox pictureBox89;
         private ColoredRadioButton radioTurkish;
         private Label txtNetFw;

+ 40 - 7
Optimizer/MainForm.cs

@@ -10,6 +10,7 @@ using System.Net;
 using System.Net.NetworkInformation;
 using System.Reflection;
 using System.Text;
+using System.Threading;
 using System.Threading.Tasks;
 using System.Windows.Forms;
 
@@ -33,6 +34,10 @@ namespace Optimizer
         string _shodanIP = string.Empty;
         PingReply tmpReply;
 
+        NetworkMonitor _networkMonitor;
+        double uploadSpeed = 0;
+        double downloadSpeed = 0;
+
         DesktopItemType _desktopItemType = DesktopItemType.Program;
         DesktopTypePosition _desktopItemPosition = DesktopTypePosition.Top;
 
@@ -523,6 +528,29 @@ namespace Optimizer
                 btnUpdate.Enabled = false;
                 lblUpdateDisabled.Visible = true;
             }
+
+            // network monitoring
+            _networkMonitor = new NetworkMonitor();
+        }
+
+        private void NetworkMonitoring()
+        {
+            while (true)
+            {
+                downloadSpeed = 0;
+                uploadSpeed = 0;
+
+                foreach (NetworkAdapter adapter in _networkMonitor.Adapters)
+                {
+                    //adapter.Refresh();
+                    downloadSpeed += Math.Round(adapter.DownloadSpeedMbps, 2);
+                    uploadSpeed += Math.Round(adapter.UploadSpeedMbps, 2);
+                }
+
+                this.Text = string.Format("Optimizer - DOWN: {0} UP: {1}", downloadSpeed, uploadSpeed);
+
+                Thread.Sleep(1000);
+            }
         }
 
         private void Translate(bool skipFull = false)
@@ -1130,7 +1158,17 @@ namespace Optimizer
         private void aio_SelectedIndexChanged(object sender, EventArgs e)
         {
             if (tabCollection.SelectedTab == hostsEditorTab) txtIP.Focus();
-            if (tabCollection.SelectedTab == pingerTab) txtPingInput.Focus();
+
+            if (tabCollection.SelectedTab == pingerTab)
+            {
+                txtPingInput.Focus();
+                //_networkMonitor.StartMonitoring();
+                //NetworkMonitoring();
+            }
+            //else
+            //{
+            //    _networkMonitor.StopMonitoring();
+            //}
         }
 
         private void button48_Click(object sender, EventArgs e)
@@ -2431,7 +2469,7 @@ namespace Optimizer
                 for (int i = 0; i < 9; i++)
                 {
                     // wait before each pinging
-                    System.Threading.Thread.Sleep(700);
+                    System.Threading.Thread.Sleep(888);
 
                     tmpReply = Utilities.PingHost(txtPingInput.Text);
 
@@ -2749,11 +2787,6 @@ namespace Optimizer
             Translate();
         }
 
-        private void btnSpeedtest_Click(object sender, EventArgs e)
-        {
-            Utilities.SpeedTest();
-        }
-
         private void pictureBox89_Click(object sender, EventArgs e)
         {
             radioTurkish.PerformClick();

+ 83 - 0
Optimizer/NetworkAdapter.cs

@@ -0,0 +1,83 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Diagnostics;
+using System.Threading.Tasks;
+
+namespace Optimizer
+{
+    public class NetworkAdapter
+    {
+        long _downloadSpeed, _uploadSpeed;
+        long _downloadValue, _uploadValue;
+        long _downloadValueOld, _uploadValueOld;
+
+        string _name;
+
+        internal PerformanceCounter DownloadCounter, UploadCounter;
+
+        internal NetworkAdapter(string name)
+        {
+            _name = name;
+        }
+
+        internal void Initialize()
+        {
+            _downloadValueOld = DownloadCounter.NextSample().RawValue;
+            _uploadValueOld = UploadCounter.NextSample().RawValue;
+        }
+
+        internal void Refresh()
+        {
+            _downloadValue = DownloadCounter.NextSample().RawValue;
+            _uploadValue = UploadCounter.NextSample().RawValue;
+
+            _downloadSpeed = _downloadValue - _downloadValueOld;
+            _uploadSpeed = _uploadValue - _uploadValueOld;
+
+            _downloadValueOld = _downloadValue;
+            _uploadValueOld = _uploadValue;
+        }
+
+        public override string ToString()
+        {
+            return _name;
+        }
+
+        public string Name
+        {
+            get { return _name; }
+        }
+
+        public long DownloadSpeed
+        {
+            get { return _downloadSpeed; }
+        }
+
+        public long UploadSpeed
+        {
+            get { return _uploadSpeed; }
+        }
+
+        public double DownloadSpeedKbps
+        {
+            get { return this._downloadSpeed / 1024.0; }
+        }
+
+        public double UploadSpeedKbps
+        {
+            get { return this._uploadSpeed / 1024.0; }
+        }
+
+        public double DownloadSpeedMbps
+        {
+            get { return this._downloadSpeed / 1024.0 / 1024.0; }
+        }
+
+        public double UploadSpeedMbps
+        {
+            get { return this._uploadSpeed / 1024.0 / 1024.0; }
+        }
+    }
+}

+ 105 - 0
Optimizer/NetworkMonitor.cs

@@ -0,0 +1,105 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Collections;
+using System.Timers;
+using System.Diagnostics;
+
+namespace Optimizer
+{
+    public class NetworkMonitor
+    {
+        Timer _timer;
+        ArrayList _adapters;
+        ArrayList _monitoredAdapters;
+
+        public NetworkMonitor()
+        {
+            _adapters = new ArrayList();
+            _monitoredAdapters = new ArrayList();
+            EnumerateNetworkAdapters();
+
+            _timer = new Timer(1000);
+            _timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
+        }
+
+        private void EnumerateNetworkAdapters()
+        {
+            PerformanceCounterCategory category = new PerformanceCounterCategory("Network Interface");
+
+            foreach (string name in category.GetInstanceNames())
+            {
+                if (name == "MS TCP Loopback interface") continue;
+                if (name.ToLowerInvariant().Contains("virtual")) continue;
+                if (name.ToLowerInvariant().Contains("hyper-v")) continue;
+
+                NetworkAdapter adapter = new NetworkAdapter(name);
+                adapter.DownloadCounter = new PerformanceCounter("Network Interface", "Bytes Received/sec", name);
+                adapter.UploadCounter = new PerformanceCounter("Network Interface", "Bytes Sent/sec", name);
+                _adapters.Add(adapter);
+            }
+        }
+
+        private void timer_Elapsed(object sender, ElapsedEventArgs e)
+        {
+            foreach (NetworkAdapter adapter in this._monitoredAdapters)
+            {
+                adapter.Refresh();
+            }
+        }
+
+        public NetworkAdapter[] Adapters
+        {
+            get { return (NetworkAdapter[])_adapters.ToArray(typeof(NetworkAdapter)); }
+        }
+
+        public void StartMonitoring()
+        {
+            if (_adapters.Count > 0)
+            {
+                foreach (NetworkAdapter adapter in _adapters)
+                {
+                    if (!_monitoredAdapters.Contains(adapter))
+                    {
+                        _monitoredAdapters.Add(adapter);
+                        adapter.Initialize();
+                    }
+                }
+
+                _timer.Enabled = true;
+            }
+        }
+
+        public void StartMonitoring(NetworkAdapter adapter)
+        {
+            if (!_monitoredAdapters.Contains(adapter))
+            {
+                _monitoredAdapters.Add(adapter);
+                adapter.Initialize();
+            }
+
+            _timer.Enabled = true;
+        }
+
+        public void StopMonitoring()
+        {
+            _monitoredAdapters.Clear();
+            _timer.Enabled = false;
+        }
+
+        public void StopMonitoring(NetworkAdapter adapter)
+        {
+            if (_monitoredAdapters.Contains(adapter))
+            {
+                _monitoredAdapters.Remove(adapter);
+            }
+
+            if (_monitoredAdapters.Count == 0)
+            {
+                _timer.Enabled = false;
+            }
+        }
+    }
+}

+ 2 - 0
Optimizer/Optimizer.csproj

@@ -134,6 +134,8 @@
     <Compile Include="MainForm.Designer.cs">
       <DependentUpon>MainForm.cs</DependentUpon>
     </Compile>
+    <Compile Include="NetworkAdapter.cs" />
+    <Compile Include="NetworkMonitor.cs" />
     <Compile Include="Optimize.cs" />
     <Compile Include="Options.cs" />
     <Compile Include="Program.cs" />

+ 0 - 16
Optimizer/Utilities.cs

@@ -679,22 +679,6 @@ namespace Optimizer
             return string.Join("_", fileName.Split(invalids, StringSplitOptions.RemoveEmptyEntries)).TrimEnd('.');
         }
 
-        internal static void SpeedTest()
-        {
-            byte[] data;
-
-            WebClient client = new WebClient();
-            client.Encoding = System.Text.Encoding.UTF8;
-
-            Stopwatch sw = Stopwatch.StartNew();
-            data = client.DownloadData("https://github-releases.githubusercontent.com/95730276/f421f880-bfcd-11eb-82bb-2f6f76a46055?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210603%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210603T202732Z&X-Amz-Expires=300&X-Amz-Signature=97db99e398122aa3b582884f6aab00447d76130ec80951764cbd204a6455f920&X-Amz-SignedHeaders=host&actor_id=3146835&key_id=0&repo_id=95730276&response-content-disposition=attachment%3B%20filename%3D91.0.4472.77_ungoogled_mini_installer.exe&response-content-type=application%2Foctet-stream");
-            sw.Stop();
-
-            var speed = (long)(data.LongLength / sw.Elapsed.TotalSeconds);
-
-            MessageBox.Show(ByteSize.FromBytes(speed).KiloBytes.ToString());
-        }
-
         internal static string CheckNETFramework()
         {
             string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";