diff --git a/Plugins/Wox.Plugin.Url/Main.cs b/Plugins/Wox.Plugin.Url/Main.cs
index 6cd486919b..1c3a708c84 100644
--- a/Plugins/Wox.Plugin.Url/Main.cs
+++ b/Plugins/Wox.Plugin.Url/Main.cs
@@ -1,9 +1,9 @@
-using System;
+using System;
using System.Collections.Generic;
-using System.Diagnostics;
using System.Text.RegularExpressions;
using System.Windows.Controls;
using Wox.Infrastructure.Storage;
+using Wox.Plugin.SharedCommands;
namespace Wox.Plugin.Url
{
@@ -79,15 +79,8 @@ namespace Wox.Plugin.Url
}
try
{
- if (_settings.BrowserPath.Length == 0)
- {
- Process.Start(raw);
- }
- else
- {
- Process.Start(_settings.BrowserPath,raw);
- }
-
+ raw.NewBrowserWindow(_settings.BrowserPath);
+
return true;
}
catch(Exception ex)
diff --git a/Wox.Plugin/SharedCommands/SearchWeb.cs b/Wox.Plugin/SharedCommands/SearchWeb.cs
new file mode 100644
index 0000000000..0dc03ee6d5
--- /dev/null
+++ b/Wox.Plugin/SharedCommands/SearchWeb.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Diagnostics;
+using System.IO;
+using System.Linq;
+
+namespace Wox.Plugin.SharedCommands
+{
+ public static class SearchWeb
+ {
+ /// Opens search in a new browser. If no browser path is passed in then Chrome is used.
+ /// Leave browser path blank to use Chrome.
+ ///
+ public static void NewBrowserWindow(this string url, string browserPath)
+ {
+ var browserExecutableName = browserPath?
+ .Split(new[] { Path.DirectorySeparatorChar }, StringSplitOptions.None)
+ .Last();
+
+ var browser = string.IsNullOrEmpty(browserExecutableName) ? "chrome" : browserPath;
+
+ // Internet Explorer will open url in new browser window, and does not take the --new-window parameter
+ var browserArguements = browserExecutableName == "iexplore.exe" ? url : "--new-window " + url;
+
+ Process.Start(browser, browserArguements);
+ }
+ }
+}
diff --git a/Wox.Plugin/Wox.Plugin.csproj b/Wox.Plugin/Wox.Plugin.csproj
index 1acfef9491..8b1e9f0ca7 100644
--- a/Wox.Plugin/Wox.Plugin.csproj
+++ b/Wox.Plugin/Wox.Plugin.csproj
@@ -76,6 +76,7 @@
+
@@ -84,6 +85,7 @@
+