浏览代码

修正bug

懒得勤快 5 年之前
父节点
当前提交
829603d3da

+ 0 - 6
Masuit.Tools.AspNetCore.ResumeFileResults.WebTest/Masuit.Tools.AspNetCore.ResumeFileResults.WebTest.xml

@@ -9,11 +9,5 @@
             测试控制器
             </summary>
         </member>
-        <member name="M:Masuit.Tools.AspNetCore.ResumeFileResults.WebTest.Controllers.TestController.#ctor(Microsoft.AspNetCore.Hosting.IWebHostEnvironment)">
-            <summary>
-            
-            </summary>
-            <param name="hostingEnvironment"></param>
-        </member>
     </members>
 </doc>

+ 1 - 1
Masuit.Tools.Core/Masuit.Tools.Core.csproj

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <TargetFramework>netstandard2.1</TargetFramework>
-    <Version>2.2.8.1</Version>
+    <Version>2.2.8.2</Version>
     <Authors>懒得勤快</Authors>
     <Company>masuit.com</Company>
     <Description>包含一些常用的操作类,大都是静态类,加密解密,反射操作,硬件信息,字符串扩展方法,日期时间扩展操作,大文件拷贝,图像裁剪,html处理,验证码、NoSql等常用封装。

+ 12 - 59
Masuit.Tools/Hardware/SystemInfo.cs

@@ -1,14 +1,14 @@
 using Masuit.Tools.Logging;
-using Microsoft.Win32;
 using System;
 using System.Collections;
 using System.Collections.Generic;
 using System.Diagnostics;
 using System.Linq;
 using System.Management;
+using System.Net;
+using System.Net.NetworkInformation;
 using System.Runtime.InteropServices;
 using System.Text;
-using System.Threading;
 
 namespace Masuit.Tools.Hardware
 {
@@ -487,69 +487,22 @@ namespace Masuit.Tools.Hardware
         }
 
         /// <summary>  
-        /// 运行一个控制台程序并返回其输出参数。  
+        /// 获取当前使用的IP  
         /// </summary>  
-        /// <param name="filename">程序名</param>  
-        /// <param name="arguments">输入参数</param>
-        /// <param name="recordLog">是否记录日志</param>
         /// <returns></returns>  
-        public static string RunApp(string filename, string arguments, bool recordLog)
+        public static IPAddress GetLocalUsedIP()
         {
-            try
-            {
-                if (recordLog)
-                {
-                    Trace.WriteLine(filename + " " + arguments);
-                }
-
-                using var proc = new Process
-                {
-                    StartInfo =
-                    {
-                        FileName = filename,
-                        CreateNoWindow = true,
-                        Arguments = arguments,
-                        RedirectStandardOutput = true,
-                        UseShellExecute = false
-                    }
-                };
-                proc.Start();
-
-                using var sr = new System.IO.StreamReader(proc.StandardOutput.BaseStream, Encoding.Default);
-                Thread.Sleep(100); //貌似调用系统的nslookup还未返回数据或者数据未编码完成,程序就已经跳过直接执行  
-                if (!proc.HasExited) //在无参数调用nslookup后,可以继续输入命令继续操作,如果进程未停止就直接执行  
-                {
-                    proc.Kill();
-                }
-
-                string txt = sr.ReadToEnd();
-                if (recordLog)
-                {
-                    Trace.WriteLine(txt);
-                }
-                return txt;
-            }
-            catch (Exception ex)
-            {
-                Trace.WriteLine(ex);
-                return ex.Message;
-            }
+            return NetworkInterface.GetAllNetworkInterfaces().OrderByDescending(c => c.Speed).Where(c => c.NetworkInterfaceType != NetworkInterfaceType.Loopback && c.OperationalStatus == OperationalStatus.Up).SelectMany(n => n.GetIPProperties().UnicastAddresses.Select(u => u.Address)).FirstOrDefault();
         }
 
-        /// <summary>
-        /// 获取操作系统版
-        /// </summary>
-        /// <returns></returns>
-        public static string GetOsVersion()
+        /// <summary>  
+        /// 获取本机所有的ip地址
+        /// </summary>  
+        /// <returns></returns>  
+        public static List<UnicastIPAddressInformation> GetLocalIPs()
         {
-            try
-            {
-                return Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion")?.GetValue("ProductName").ToString();
-            }
-            catch (Exception)
-            {
-                return "未能获取到操作系统版本,可能是当前程序无管理员权限,如果是web应用程序,请将应用程序池的高级设置中的进程模型下的标识设置为:LocalSystem;如果是普通桌面应用程序,请提升管理员权限后再操作。";
-            }
+            var interfaces = NetworkInterface.GetAllNetworkInterfaces().OrderByDescending(c => c.Speed).Where(c => c.NetworkInterfaceType != NetworkInterfaceType.Loopback && c.OperationalStatus == OperationalStatus.Up); //所有网卡信息
+            return interfaces.SelectMany(n => n.GetIPProperties().UnicastAddresses).ToList();
         }
 
         #region 将速度值格式化成字节单位

+ 2 - 1
Masuit.Tools/Media/ImageUtilities.cs

@@ -34,7 +34,7 @@ namespace Masuit.Tools.Media
             }
 
             //原始图片(获取原始图片创建对象,并使用流中嵌入的颜色管理信息)
-            using var initImage = Image.FromStream(fromFile, true);
+            var initImage = Image.FromStream(fromFile, true);
 
             //原图宽高均小于模版,不作处理,直接保存
             if ((initImage.Width <= side) && (initImage.Height <= side))
@@ -92,6 +92,7 @@ namespace Masuit.Tools.Media
                     //将截图对象赋给原图
                     initImage = (Image)pickedImage.Clone();
                     //释放截图资源
+                    initImage.Dispose();
                     pickedG.Dispose();
                     pickedImage.Dispose();
                 }

二进制
Masuit.Tools/Properties/AssemblyInfo.cs


+ 18 - 22
Masuit.Tools/Win32/Windows.cs

@@ -1,11 +1,9 @@
 using Masuit.Tools.Hardware;
+using Microsoft.Win32;
 using System;
-using System.Collections.Generic;
 using System.Diagnostics;
 using System.Linq;
 using System.Management;
-using System.Net;
-using System.Net.NetworkInformation;
 using System.Runtime.InteropServices;
 using System.Text;
 using System.Threading;
@@ -66,24 +64,6 @@ namespace Masuit.Tools.Win32
             }
         }
 
-        /// <summary>  
-        /// 获取当前使用的IP  
-        /// </summary>  
-        /// <returns></returns>  
-        public static IPAddress GetLocalUsedIP()
-        {
-            return NetworkInterface.GetAllNetworkInterfaces().Select(p => p.GetIPProperties()).SelectMany(p => p.UnicastAddresses).Where(p => p.DuplicateAddressDetectionState == DuplicateAddressDetectionState.Preferred && !IPAddress.IsLoopback(p.Address)).Select(x => x.Address).FirstOrDefault();
-        }
-
-        /// <summary>  
-        /// 获取本机所有的ip地址
-        /// </summary>  
-        /// <returns></returns>  
-        public static List<UnicastIPAddressInformation> GetLocalIPs()
-        {
-            return NetworkInterface.GetAllNetworkInterfaces().Select(p => p.GetIPProperties()).SelectMany(p => p.UnicastAddresses).Where(p => !IPAddress.IsLoopback(p.Address)).ToList();
-        }
-
         /// <summary>  
         /// 运行一个控制台程序并返回其输出参数。  
         /// </summary>  
@@ -135,6 +115,22 @@ namespace Masuit.Tools.Win32
                 return ex.Message;
             }
         }
+
+        /// <summary>
+        /// 获取操作系统版本
+        /// </summary>
+        /// <returns></returns>
+        public static string GetOsVersion()
+        {
+            try
+            {
+                return Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion")?.GetValue("ProductName").ToString();
+            }
+            catch (Exception)
+            {
+                return "未能获取到操作系统版本,可能是当前程序无管理员权限,如果是web应用程序,请将应用程序池的高级设置中的进程模型下的标识设置为:LocalSystem;如果是普通桌面应用程序,请提升管理员权限后再操作。";
+            }
+        }
     }
 
     /// <summary>
@@ -216,7 +212,7 @@ namespace Masuit.Tools.Win32
             MacAddress = SystemInfo.GetMacAddress()[0];
             DiskId = GetDiskID();
             DiskSize = GetSizeOfDisk();
-            IpAddress = Windows.GetLocalUsedIP().ToString();
+            IpAddress = SystemInfo.GetLocalUsedIP().ToString();
             LoginUserName = GetUserName();
             SystemType = GetSystemType();
             TotalPhysicalMemory = GetTotalPhysicalMemory();

+ 1 - 1
Masuit.Tools/package.nuspec

@@ -4,7 +4,7 @@
     <!--*-->
     <id>Masuit.Tools</id>
     <!--*-->
-    <version>2.2.8.1</version>
+    <version>2.2.8.2</version>
     <title>Masuit.Tools</title>
     <!--*-->
     <authors>masuit.com</authors>