OSDN Git Service

GUI: Implemented detection of the ARM64 architecture via IsWow64Process2() function.
[slunkcrypt/SlunkCrypt.git] / gui / Process / ExecutableHelper.cs
index a318e1d..3ae3b3f 100644 (file)
@@ -35,14 +35,22 @@ namespace com.muldersoft.slunkcrypt.gui.process
             FileStream executableFile = null;
             string appBaseDirectory = AppDomain.CurrentDomain.BaseDirectory;
             CPUFeatures cpuFeatures = CPUFeatures.Features;
-            if (cpuFeatures.x64)
+            if (cpuFeatures.cpuArch.Equals(CPUFeatures.CPUArch.a64))
+            {
+                if (CheckExecutableFile(ref executableFile, appBaseDirectory, "arm64"))
+                {
+                    Trace.Assert(executableFile != null);
+                    return executableFile;
+                }
+            }
+            if (cpuFeatures.cpuArch.Equals(CPUFeatures.CPUArch.x64))
             {
                 if (cpuFeatures.hasAVX2 && CheckExecutableFile(ref executableFile, appBaseDirectory, "avx2"))
                 {
                     Trace.Assert(executableFile != null);
                     return executableFile;
                 }
-                else if (CheckExecutableFile(ref executableFile, appBaseDirectory, "x64"))
+                if (CheckExecutableFile(ref executableFile, appBaseDirectory, "x64"))
                 {
                     Trace.Assert(executableFile != null);
                     return executableFile;
@@ -53,7 +61,7 @@ namespace com.muldersoft.slunkcrypt.gui.process
                 Trace.Assert(executableFile != null);
                 return executableFile;
             }
-            else if (CheckExecutableFile(ref executableFile, appBaseDirectory, "i686"))
+            if (CheckExecutableFile(ref executableFile, appBaseDirectory, "i686"))
             {
                 Trace.Assert(executableFile != null);
                 return executableFile;