diff --git a/ShareX.HelpersLib/Helpers/RegistryHelpers.cs b/ShareX.HelpersLib/Helpers/RegistryHelpers.cs
index a73d2ce44..79ed5058d 100644
--- a/ShareX.HelpersLib/Helpers/RegistryHelpers.cs
+++ b/ShareX.HelpersLib/Helpers/RegistryHelpers.cs
@@ -101,7 +101,7 @@ public static bool CheckRegistry(string path, string name = null, string value =
return registryValue != null && (value == null || registryValue.Equals(value, StringComparison.InvariantCultureIgnoreCase));
}
- public static ExternalProgram FindProgram(string name, string filename)
+ public static string SearchProgramPath(string fileName)
{
// First method: HKEY_CLASSES_ROOT\Applications\{filename}\shell\{command}\command
@@ -109,7 +109,7 @@ public static ExternalProgram FindProgram(string name, string filename)
foreach (string command in commands)
{
- string path = $@"HKEY_CLASSES_ROOT\Applications\{filename}\shell\{command}\command";
+ string path = $@"HKEY_CLASSES_ROOT\Applications\{fileName}\shell\{command}\command";
string value = Registry.GetValue(path, null, null) as string;
if (!string.IsNullOrEmpty(value))
@@ -119,7 +119,7 @@ public static ExternalProgram FindProgram(string name, string filename)
if (File.Exists(filePath))
{
DebugHelper.WriteLine("Found program with first method: " + filePath);
- return new ExternalProgram(name, filePath);
+ return filePath;
}
}
}
@@ -144,10 +144,10 @@ public static ExternalProgram FindProgram(string name, string filename)
}
}
- if (programPath.EndsWith(filename, StringComparison.OrdinalIgnoreCase) && File.Exists(programPath))
+ if (programPath.EndsWith(fileName, StringComparison.OrdinalIgnoreCase) && File.Exists(programPath))
{
DebugHelper.WriteLine("Found program with second method: " + programPath);
- return new ExternalProgram(name, programPath);
+ return programPath;
}
}
}
diff --git a/ShareX/Forms/ActionsForm.resx b/ShareX/Forms/ActionsForm.resx
index 851d4a716..7c93297dc 100644
--- a/ShareX/Forms/ActionsForm.resx
+++ b/ShareX/Forms/ActionsForm.resx
@@ -460,7 +460,7 @@
True
- 9, 248
+ 8, 248
2, 2, 2, 2
diff --git a/ShareX/TaskHelpers.cs b/ShareX/TaskHelpers.cs
index 9cc5ddf14..ac47e4576 100644
--- a/ShareX/TaskHelpers.cs
+++ b/ShareX/TaskHelpers.cs
@@ -610,14 +610,15 @@ public static void AddDefaultExternalPrograms(TaskSettings taskSettings)
AddExternalProgramFromRegistry(taskSettings, "XnView", "xnview.exe");
}
- private static void AddExternalProgramFromRegistry(TaskSettings taskSettings, string name, string filename)
+ private static void AddExternalProgramFromRegistry(TaskSettings taskSettings, string name, string fileName)
{
if (!taskSettings.ExternalPrograms.Exists(x => x.Name == name))
{
- ExternalProgram externalProgram = RegistryHelpers.FindProgram(name, filename);
+ string filePath = RegistryHelpers.SearchProgramPath(fileName);
- if (externalProgram != null)
+ if (!string.IsNullOrEmpty(filePath))
{
+ ExternalProgram externalProgram = new ExternalProgram(name, filePath);
taskSettings.ExternalPrograms.Add(externalProgram);
}
}