diff --git a/GreenshotExternalCommandPlugin/ExternalCommandPlugin.cs b/GreenshotExternalCommandPlugin/ExternalCommandPlugin.cs index e122bdb77..0a67ab8b2 100644 --- a/GreenshotExternalCommandPlugin/ExternalCommandPlugin.cs +++ b/GreenshotExternalCommandPlugin/ExternalCommandPlugin.cs @@ -122,9 +122,13 @@ namespace ExternalCommand { itemPlugInRoot = new ToolStripMenuItem(); itemPlugInRoot.Text = Language.GetString("externalcommand", "contextmenu_configure"); itemPlugInRoot.Tag = host; - string exePath = PluginUtils.GetExePath("cmd.exe"); - if (exePath != null && File.Exists(exePath)) { - itemPlugInRoot.Image = PluginUtils.GetExeIcon(exePath, 0); + try { + string exePath = PluginUtils.GetExePath("cmd.exe"); + if (exePath != null && File.Exists(exePath)) { + itemPlugInRoot.Image = PluginUtils.GetExeIcon(exePath, 0); + } + } catch (Exception ex) { + LOG.Warn("Couldn't get the cmd.exe image", ex); } itemPlugInRoot.Click += new System.EventHandler(ConfigMenuClick); diff --git a/GreenshotPlugin/Core/PluginUtils.cs b/GreenshotPlugin/Core/PluginUtils.cs index aa970856d..fbe8d8e7e 100644 --- a/GreenshotPlugin/Core/PluginUtils.cs +++ b/GreenshotPlugin/Core/PluginUtils.cs @@ -53,10 +53,14 @@ namespace GreenshotPlugin.Core { return (string)key.GetValue(""); } } - foreach (string test in (Environment.GetEnvironmentVariable("PATH") ?? "").Split(';')) { - string path = test.Trim(); - if (!String.IsNullOrEmpty(path) && File.Exists(path = Path.Combine(path, exeName))) { - return Path.GetFullPath(path); + foreach (string pathEntry in (Environment.GetEnvironmentVariable("PATH") ?? "").Split(';')) { + try { + string path = pathEntry.Trim(); + if (!String.IsNullOrEmpty(path) && File.Exists(path = Path.Combine(path, exeName))) { + return Path.GetFullPath(path); + } + } catch (Exception) { + LOG.WarnFormat("Problem with path entry '{0}'.", pathEntry); } } return null;