diff --git a/src/Greenshot.Addon.Box/Greenshot.Addon.Box.csproj b/src/Greenshot.Addon.Box/Greenshot.Addon.Box.csproj index 0be249c8e..3c1d0e44e 100644 --- a/src/Greenshot.Addon.Box/Greenshot.Addon.Box.csproj +++ b/src/Greenshot.Addon.Box/Greenshot.Addon.Box.csproj @@ -3,7 +3,8 @@ Greenshot.Addon.Box Greenshot.Addon.Box - net471;netcoreapp3.0 + + net471 diff --git a/src/Greenshot.Addon.Confluence/ConfluenceUtils.cs b/src/Greenshot.Addon.Confluence/ConfluenceUtils.cs index d391b64f6..ecfbb84f7 100644 --- a/src/Greenshot.Addon.Confluence/ConfluenceUtils.cs +++ b/src/Greenshot.Addon.Confluence/ConfluenceUtils.cs @@ -50,7 +50,7 @@ namespace Greenshot.Addon.Confluence var pages = new List(); var pageIdRegex = new Regex(@"pageId=(\d+)"); var spacePageRegex = new Regex(@"\/display\/([^\/]+)\/([^#]+)"); - foreach (var browserurl in IEHelper.GetIEUrls().Distinct()) + foreach (var browserurl in InternetExplorerHelper.GetIEUrls().Distinct()) { string url; try diff --git a/src/Greenshot.Addon.Confluence/Greenshot.Addon.Confluence.csproj b/src/Greenshot.Addon.Confluence/Greenshot.Addon.Confluence.csproj index 6b238ab83..ad0ca6ada 100644 --- a/src/Greenshot.Addon.Confluence/Greenshot.Addon.Confluence.csproj +++ b/src/Greenshot.Addon.Confluence/Greenshot.Addon.Confluence.csproj @@ -3,7 +3,8 @@ Greenshot.Addon.Confluence Greenshot.Addon.Confluence - net471;netcoreapp3.0 + + net471 diff --git a/src/Greenshot.Addon.Dropbox/Greenshot.Addon.Dropbox.csproj b/src/Greenshot.Addon.Dropbox/Greenshot.Addon.Dropbox.csproj index d0a379fbc..f0226deeb 100644 --- a/src/Greenshot.Addon.Dropbox/Greenshot.Addon.Dropbox.csproj +++ b/src/Greenshot.Addon.Dropbox/Greenshot.Addon.Dropbox.csproj @@ -3,7 +3,8 @@ Greenshot.Addon.Dropbox Greenshot.Addon.Dropbox - net471;netcoreapp3.0 + + net471 diff --git a/src/Greenshot.Addon.ExternalCommand/Greenshot.Addon.ExternalCommand.csproj b/src/Greenshot.Addon.ExternalCommand/Greenshot.Addon.ExternalCommand.csproj index e65b37a41..bb2570c4f 100644 --- a/src/Greenshot.Addon.ExternalCommand/Greenshot.Addon.ExternalCommand.csproj +++ b/src/Greenshot.Addon.ExternalCommand/Greenshot.Addon.ExternalCommand.csproj @@ -3,7 +3,8 @@ Greenshot.Addon.ExternalCommand Greenshot.Addon.ExternalCommand - net471;netcoreapp3.0 + + net471 diff --git a/src/Greenshot.Addon.Flickr/Greenshot.Addon.Flickr.csproj b/src/Greenshot.Addon.Flickr/Greenshot.Addon.Flickr.csproj index c7df32b05..621f9a111 100644 --- a/src/Greenshot.Addon.Flickr/Greenshot.Addon.Flickr.csproj +++ b/src/Greenshot.Addon.Flickr/Greenshot.Addon.Flickr.csproj @@ -3,7 +3,8 @@ Greenshot.Addon.Flickr Greenshot.Addon.Flickr - net471;netcoreapp3.0 + + net471 diff --git a/src/Greenshot.Addon.GooglePhotos/Greenshot.Addon.GooglePhotos.csproj b/src/Greenshot.Addon.GooglePhotos/Greenshot.Addon.GooglePhotos.csproj index 9d4879965..83b241882 100644 --- a/src/Greenshot.Addon.GooglePhotos/Greenshot.Addon.GooglePhotos.csproj +++ b/src/Greenshot.Addon.GooglePhotos/Greenshot.Addon.GooglePhotos.csproj @@ -3,7 +3,8 @@ Greenshot.Addon.GooglePhotos Greenshot.Addon.GooglePhotos - net471;netcoreapp3.0 + + net471 diff --git a/src/Greenshot.Addon.Imgur/Greenshot.Addon.Imgur.csproj b/src/Greenshot.Addon.Imgur/Greenshot.Addon.Imgur.csproj index 20cfc9298..df4d02707 100644 --- a/src/Greenshot.Addon.Imgur/Greenshot.Addon.Imgur.csproj +++ b/src/Greenshot.Addon.Imgur/Greenshot.Addon.Imgur.csproj @@ -3,7 +3,8 @@ Greenshot.Addon.Imgur Greenshot.Addon.Imgur - net471;netcoreapp3.0 + + net471 diff --git a/src/Greenshot.Addon.InternetExplorer/Greenshot.Addon.InternetExplorer.csproj b/src/Greenshot.Addon.InternetExplorer/Greenshot.Addon.InternetExplorer.csproj index 5ac50dae8..0325146a0 100644 --- a/src/Greenshot.Addon.InternetExplorer/Greenshot.Addon.InternetExplorer.csproj +++ b/src/Greenshot.Addon.InternetExplorer/Greenshot.Addon.InternetExplorer.csproj @@ -1,7 +1,8 @@  - net471;netcoreapp3.0 + + net471 true diff --git a/src/Greenshot.Addon.InternetExplorer/InternetExplorerAddonModule.cs b/src/Greenshot.Addon.InternetExplorer/InternetExplorerAddonModule.cs new file mode 100644 index 000000000..adbd45b16 --- /dev/null +++ b/src/Greenshot.Addon.InternetExplorer/InternetExplorerAddonModule.cs @@ -0,0 +1,41 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using Autofac; +using Dapplo.Addons; + +namespace Greenshot.Addon.InternetExplorer +{ + /// + public class InternetExplorerAddonModulenModule : AddonModule + { + protected override void Load(ContainerBuilder builder) + { + builder + .RegisterType() + .AsSelf() + .SingleInstance(); + base.Load(builder); + } + } +} diff --git a/src/Greenshot.Addon.InternetExplorer/IECaptureHelper.cs b/src/Greenshot.Addon.InternetExplorer/InternetExplorerCaptureHelper.cs similarity index 91% rename from src/Greenshot.Addon.InternetExplorer/IECaptureHelper.cs rename to src/Greenshot.Addon.InternetExplorer/InternetExplorerCaptureHelper.cs index 14e210269..47d9dc976 100644 --- a/src/Greenshot.Addon.InternetExplorer/IECaptureHelper.cs +++ b/src/Greenshot.Addon.InternetExplorer/InternetExplorerCaptureHelper.cs @@ -36,7 +36,7 @@ using Dapplo.Windows.Common.Structs; using Dapplo.Windows.Desktop; using Dapplo.Windows.Messages; using Dapplo.Windows.User32; -using Greenshot.Addon.InternetExplorer.IEInterop; +using Greenshot.Addon.InternetExplorer.InternetExplorerInterop; using Greenshot.Addons.Config.Impl; using Greenshot.Addons.Controls; using Greenshot.Addons.Core; @@ -54,20 +54,24 @@ namespace Greenshot.Addon.InternetExplorer /// On top I modified it to use the already available code in Greenshot. /// Many thanks to all the people who contributed here! /// - public static class IeCaptureHelper + public class InternetExplorerCaptureHelper { private static readonly LogSource Log = new LogSource(); - // TODO: Solve, was static reference! - private static readonly ICoreConfiguration CoreConfig = new CoreConfigurationImpl(); + private readonly ICoreConfiguration _coreConfiguration; + + public InternetExplorerCaptureHelper(ICoreConfiguration coreConfiguration) + { + _coreConfiguration = coreConfiguration; + } /// /// Helper method to activate a certain IE Tab /// /// IInteropWindow /// int - public static void ActivateIeTab(IInteropWindow nativeIeWindow, int tabIndex) + public void ActivateIeTab(IInteropWindow nativeIeWindow, int tabIndex) { - var directUiInteropWindow = IEHelper.GetDirectUi(nativeIeWindow); + var directUiInteropWindow = InternetExplorerHelper.GetDirectUi(nativeIeWindow); if (directUiInteropWindow == null) { return; @@ -87,7 +91,7 @@ namespace Greenshot.Addon.InternetExplorer /// InteropWindow to check /// min percentage /// - public static bool IsMostlyIeWindow(IInteropWindow someWindow, int minimumPercentage) + public bool IsMostlyIeWindow(IInteropWindow someWindow, int minimumPercentage) { var ieWindow = someWindow.GetChildren().FirstOrDefault(window => window.GetClassname() == "Internet Explorer_Server"); if (ieWindow == null) @@ -106,13 +110,13 @@ namespace Greenshot.Addon.InternetExplorer /// /// /// - public static bool IsIeWindow(IInteropWindow someWindow) + public bool IsIeWindow(IInteropWindow someWindow) { if ("IEFrame".Equals(someWindow.GetClassname())) { return true; } - if (CoreConfig.WindowClassesToCheckForIE != null && CoreConfig.WindowClassesToCheckForIE.Contains(someWindow.Classname)) + if (_coreConfiguration.WindowClassesToCheckForIE != null && _coreConfiguration.WindowClassesToCheckForIE.Contains(someWindow.Classname)) { return someWindow.GetChildren().Any(window => window.GetClassname() == "Internet Explorer_Server"); } @@ -123,7 +127,7 @@ namespace Greenshot.Addon.InternetExplorer /// Get Windows displaying an IE /// /// IEnumerable IInteropWindow - public static IEnumerable GetIeWindows() + public IEnumerable GetIeWindows() { return WindowsEnumerator.EnumerateWindows().Where(IsIeWindow); } @@ -132,7 +136,7 @@ namespace Greenshot.Addon.InternetExplorer /// Simple check if IE is running /// /// bool - public static bool IsIeRunning() + public bool IsIeRunning() { return GetIeWindows().Any(); } @@ -141,7 +145,7 @@ namespace Greenshot.Addon.InternetExplorer /// Gets a list of all IE Windows & tabs with the captions of the instances /// /// List with KeyValuePair of InteropWindow and string - public static IList> GetBrowserTabs() + public IList> GetBrowserTabs() { var ieHandleList = new List(); var browserWindows = new Dictionary>(); @@ -157,14 +161,14 @@ namespace Greenshot.Addon.InternetExplorer } if ("IEFrame".Equals(ieWindow.GetClassname())) { - var directUiwd = IEHelper.GetDirectUi(ieWindow); + var directUiwd = InternetExplorerHelper.GetDirectUi(ieWindow); if (directUiwd != null) { var accessible = new Accessible(directUiwd.Handle); browserWindows.Add(ieWindow, accessible.IETabCaptions); } } - else if (CoreConfig.WindowClassesToCheckForIE != null && CoreConfig.WindowClassesToCheckForIE.Contains(ieWindow.Classname)) + else if (_coreConfiguration.WindowClassesToCheckForIE != null && _coreConfiguration.WindowClassesToCheckForIE.Contains(ieWindow.Classname)) { var singleWindowText = new List(); try @@ -211,7 +215,7 @@ namespace Greenshot.Addon.InternetExplorer /// /// /// - private static IHTMLDocument2 GetHtmlDocument(IInteropWindow mainWindow) + private IHTMLDocument2 GetHtmlDocument(IInteropWindow mainWindow) { var ieServer = "Internet Explorer_Server".Equals(mainWindow.GetClassname()) ? mainWindow @@ -250,7 +254,7 @@ namespace Greenshot.Addon.InternetExplorer /// /// The InteropWindow to get the IHTMLDocument2 for /// DocumentContainer - private static DocumentContainer CreateDocumentContainer(IInteropWindow browserWindow) + private DocumentContainer CreateDocumentContainer(IInteropWindow browserWindow) { DocumentContainer returnDocumentContainer = null; InteropWindow returnWindow = null; @@ -265,7 +269,7 @@ namespace Greenshot.Addon.InternetExplorer Log.Debug().WriteLine("Processing {0} - {1}", ieWindow.Classname, ieWindow.Text); Accessible ieAccessible = null; - var directUiwd = IEHelper.GetDirectUi(ieWindow); + var directUiwd = InternetExplorerHelper.GetDirectUi(ieWindow); if (directUiwd != null) { ieAccessible = new Accessible(directUiwd.Handle); @@ -390,7 +394,7 @@ namespace Greenshot.Addon.InternetExplorer /// ICapture where the capture needs to be stored /// window to use /// ICapture with the content (if any) - public static ICapture CaptureIe(ICapture capture, IInteropWindow windowToCapture = null) + public ICapture CaptureIe(ICapture capture, IInteropWindow windowToCapture = null) { if (windowToCapture == null) { @@ -542,7 +546,7 @@ namespace Greenshot.Addon.InternetExplorer /// /// /// Size of the complete page - private static Size PrepareCapture(DocumentContainer documentContainer, ICapture capture) + private Size PrepareCapture(DocumentContainer documentContainer, ICapture capture) { // Calculate the page size var pageWidth = documentContainer.ScrollWidth; @@ -645,7 +649,7 @@ namespace Greenshot.Addon.InternetExplorer /// The document wrapped in a container /// /// Bitmap with the page content as an image - private static Bitmap CapturePage(DocumentContainer documentContainer, Size pageSize) + private Bitmap CapturePage(DocumentContainer documentContainer, Size pageSize) { var contentWindowDetails = documentContainer.ContentWindow; @@ -685,7 +689,7 @@ namespace Greenshot.Addon.InternetExplorer /// Needed for referencing the location of the frame /// Graphics /// Bitmap with the capture - private static void DrawDocument(DocumentContainer documentContainer, IInteropWindow contentWindowDetails, Graphics graphicsTarget) + private void DrawDocument(DocumentContainer documentContainer, IInteropWindow contentWindowDetails, Graphics graphicsTarget) { documentContainer.SetAttribute("scroll", 1); diff --git a/src/Greenshot.Addon.InternetExplorer/IEHelper.cs b/src/Greenshot.Addon.InternetExplorer/InternetExplorerHelper.cs similarity index 93% rename from src/Greenshot.Addon.InternetExplorer/IEHelper.cs rename to src/Greenshot.Addon.InternetExplorer/InternetExplorerHelper.cs index 88a1a9648..0616c72d6 100644 --- a/src/Greenshot.Addon.InternetExplorer/IEHelper.cs +++ b/src/Greenshot.Addon.InternetExplorer/InternetExplorerHelper.cs @@ -27,10 +27,10 @@ using Dapplo.Windows.Desktop; using Microsoft.Win32; namespace Greenshot.Addon.InternetExplorer { - /// - /// Description of IEHelper. - /// - public static class IEHelper { + /// + /// Util code for Internet Explorer + /// + public class InternetExplorerHelper { private static readonly LogSource Log = new LogSource(); // Internet explorer Registry key diff --git a/src/Greenshot.Addon.InternetExplorer/IEInterop/IEContainer.cs b/src/Greenshot.Addon.InternetExplorer/InternetExplorerInterop/DocumentContainer.cs similarity index 96% rename from src/Greenshot.Addon.InternetExplorer/IEInterop/IEContainer.cs rename to src/Greenshot.Addon.InternetExplorer/InternetExplorerInterop/DocumentContainer.cs index 6c0beb688..667bb8c72 100644 --- a/src/Greenshot.Addon.InternetExplorer/IEInterop/IEContainer.cs +++ b/src/Greenshot.Addon.InternetExplorer/InternetExplorerInterop/DocumentContainer.cs @@ -37,7 +37,7 @@ using IServiceProvider = Greenshot.Addons.Interop.IServiceProvider; #endregion -namespace Greenshot.Addon.InternetExplorer.IEInterop +namespace Greenshot.Addon.InternetExplorer.InternetExplorerInterop { public class DocumentContainer { diff --git a/src/Greenshot.Addon.InternetExplorer/IEInterop/IWebBrowser2.cs b/src/Greenshot.Addon.InternetExplorer/InternetExplorerInterop/IWebBrowser2.cs similarity index 94% rename from src/Greenshot.Addon.InternetExplorer/IEInterop/IWebBrowser2.cs rename to src/Greenshot.Addon.InternetExplorer/InternetExplorerInterop/IWebBrowser2.cs index 1f3e8f65d..006550574 100644 --- a/src/Greenshot.Addon.InternetExplorer/IEInterop/IWebBrowser2.cs +++ b/src/Greenshot.Addon.InternetExplorer/InternetExplorerInterop/IWebBrowser2.cs @@ -27,7 +27,7 @@ using System.Runtime.InteropServices; #endregion -namespace Greenshot.Addon.InternetExplorer.IEInterop +namespace Greenshot.Addon.InternetExplorer.InternetExplorerInterop { // IWebBrowser: EAB22AC1-30C1-11CF-A7EB-0000C05BAE0B // [ComVisible(true), ComImport(), Guid("D30C1661-CDAF-11D0-8A3E-00C04FC9E26E"), diff --git a/src/Greenshot.Addon.LegacyEditor/Greenshot.Addon.LegacyEditor.csproj b/src/Greenshot.Addon.LegacyEditor/Greenshot.Addon.LegacyEditor.csproj index 4085fdfde..b2456120d 100644 --- a/src/Greenshot.Addon.LegacyEditor/Greenshot.Addon.LegacyEditor.csproj +++ b/src/Greenshot.Addon.LegacyEditor/Greenshot.Addon.LegacyEditor.csproj @@ -3,7 +3,8 @@ Greenshot.Addon.LegacyEditor Greenshot.Addon.LegacyEditor - net471;netcoreapp3.0 + + net471 true diff --git a/src/Greenshot.Addon.Lutim/Greenshot.Addon.Lutim.csproj b/src/Greenshot.Addon.Lutim/Greenshot.Addon.Lutim.csproj index 1f6341ef2..93e87f089 100644 --- a/src/Greenshot.Addon.Lutim/Greenshot.Addon.Lutim.csproj +++ b/src/Greenshot.Addon.Lutim/Greenshot.Addon.Lutim.csproj @@ -3,7 +3,8 @@ Greenshot.Addon.Lutim Greenshot.Addon.Lutim - net471;netcoreapp3.0 + + net471 diff --git a/src/Greenshot.Addon.OCR/Greenshot.Addon.OCR.csproj b/src/Greenshot.Addon.OCR/Greenshot.Addon.OCR.csproj index 81244eb51..da4193fc9 100644 --- a/src/Greenshot.Addon.OCR/Greenshot.Addon.OCR.csproj +++ b/src/Greenshot.Addon.OCR/Greenshot.Addon.OCR.csproj @@ -3,7 +3,8 @@ Greenshot.Addon.OCR Greenshot.Addon.OCR - net471;netcoreapp3.0 + + net471 diff --git a/src/Greenshot.Addon.Office/Greenshot.Addon.Office.csproj b/src/Greenshot.Addon.Office/Greenshot.Addon.Office.csproj index 67b7e1def..c9a40f159 100644 --- a/src/Greenshot.Addon.Office/Greenshot.Addon.Office.csproj +++ b/src/Greenshot.Addon.Office/Greenshot.Addon.Office.csproj @@ -3,7 +3,8 @@ Greenshot.Addon.Office Greenshot.Addon.Office - net471;netcoreapp3.0 + + net471 diff --git a/src/Greenshot.Addon.OneDrive/Greenshot.Addon.OneDrive.csproj b/src/Greenshot.Addon.OneDrive/Greenshot.Addon.OneDrive.csproj index 04f045d9b..bffe9a228 100644 --- a/src/Greenshot.Addon.OneDrive/Greenshot.Addon.OneDrive.csproj +++ b/src/Greenshot.Addon.OneDrive/Greenshot.Addon.OneDrive.csproj @@ -3,7 +3,8 @@ Greenshot.Addon.OneDrive Greenshot.Addon.OneDrive - net471;netcoreapp3.0 + + net471 diff --git a/src/Greenshot.Addon.Photobucket/Greenshot.Addon.Photobucket.csproj b/src/Greenshot.Addon.Photobucket/Greenshot.Addon.Photobucket.csproj index 7167aa53a..4041a27f3 100644 --- a/src/Greenshot.Addon.Photobucket/Greenshot.Addon.Photobucket.csproj +++ b/src/Greenshot.Addon.Photobucket/Greenshot.Addon.Photobucket.csproj @@ -3,7 +3,8 @@ Greenshot.Addon.Photobucket Greenshot.Addon.Photobucket - net471;netcoreapp3.0 + + net471 diff --git a/src/Greenshot.Addon.Tfs/Greenshot.Addon.Tfs.csproj b/src/Greenshot.Addon.Tfs/Greenshot.Addon.Tfs.csproj index 6fb64be85..9b0622f83 100644 --- a/src/Greenshot.Addon.Tfs/Greenshot.Addon.Tfs.csproj +++ b/src/Greenshot.Addon.Tfs/Greenshot.Addon.Tfs.csproj @@ -3,7 +3,8 @@ Greenshot.Addon.Tfs Greenshot.Addon.Tfs - net471;netcoreapp3.0 + + net471 diff --git a/src/Greenshot.Addon.Win10/Greenshot.Addon.Win10.csproj b/src/Greenshot.Addon.Win10/Greenshot.Addon.Win10.csproj index 38a48cb0b..a48c03e2f 100644 --- a/src/Greenshot.Addon.Win10/Greenshot.Addon.Win10.csproj +++ b/src/Greenshot.Addon.Win10/Greenshot.Addon.Win10.csproj @@ -3,7 +3,8 @@ Greenshot.Addon.Win10 Greenshot.Addon.Win10 - net471;netcoreapp3.0 + + net471 @@ -21,6 +22,8 @@ + + False C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Runtime.WindowsRuntime.dll diff --git a/src/Greenshot.Addons/Greenshot.Addons.csproj b/src/Greenshot.Addons/Greenshot.Addons.csproj index aa725251a..d622824db 100644 --- a/src/Greenshot.Addons/Greenshot.Addons.csproj +++ b/src/Greenshot.Addons/Greenshot.Addons.csproj @@ -1,7 +1,8 @@  - net471;netcoreapp3.0 + + net471 true diff --git a/src/Greenshot.Core/Greenshot.Core.csproj b/src/Greenshot.Core/Greenshot.Core.csproj index ba95a1421..eb10f3ae0 100644 --- a/src/Greenshot.Core/Greenshot.Core.csproj +++ b/src/Greenshot.Core/Greenshot.Core.csproj @@ -1,7 +1,8 @@  - net471;netcoreapp3.0 + + net471 true diff --git a/src/Greenshot.Gfx.Experimental/Greenshot.Gfx.Experimental.csproj b/src/Greenshot.Gfx.Experimental/Greenshot.Gfx.Experimental.csproj index d991ba5e9..cbe55d9d4 100644 --- a/src/Greenshot.Gfx.Experimental/Greenshot.Gfx.Experimental.csproj +++ b/src/Greenshot.Gfx.Experimental/Greenshot.Gfx.Experimental.csproj @@ -1,7 +1,8 @@  - net471;netcoreapp3.0 + + net471 true diff --git a/src/Greenshot.Gfx/Greenshot.Gfx.csproj b/src/Greenshot.Gfx/Greenshot.Gfx.csproj index 5e1e507e1..6b4a346c9 100644 --- a/src/Greenshot.Gfx/Greenshot.Gfx.csproj +++ b/src/Greenshot.Gfx/Greenshot.Gfx.csproj @@ -1,7 +1,8 @@  - net471;netcoreapp3.0 + + net471 true diff --git a/src/Greenshot.PerformanceTests/Greenshot.PerformanceTests.csproj b/src/Greenshot.PerformanceTests/Greenshot.PerformanceTests.csproj index 53d92bab8..2060cd8d6 100644 --- a/src/Greenshot.PerformanceTests/Greenshot.PerformanceTests.csproj +++ b/src/Greenshot.PerformanceTests/Greenshot.PerformanceTests.csproj @@ -4,7 +4,8 @@ Greenshot.PerformanceTests Greenshot.PerformanceTests Exe - net471;netcoreapp3.0 + + net471 true diff --git a/src/Greenshot.Tests/Greenshot.Tests.csproj b/src/Greenshot.Tests/Greenshot.Tests.csproj index 4d01ed21d..ec5fb7f9c 100644 --- a/src/Greenshot.Tests/Greenshot.Tests.csproj +++ b/src/Greenshot.Tests/Greenshot.Tests.csproj @@ -1,7 +1,8 @@  - net471;netcoreapp3.0 + + net471 true diff --git a/src/Greenshot/Components/CaptureSupportInfo.cs b/src/Greenshot/Components/CaptureSupportInfo.cs new file mode 100644 index 000000000..b284331c6 --- /dev/null +++ b/src/Greenshot/Components/CaptureSupportInfo.cs @@ -0,0 +1,30 @@ +using System.Collections.Generic; +using Greenshot.Addon.InternetExplorer; +using Greenshot.Addons.Interfaces; + +namespace Greenshot.Components +{ + /// + /// This is the information which is needed for making captures possible. + /// + public class CaptureSupportInfo + { + /// + /// Constructor + /// + /// InternetExplorerCaptureHelper + /// IEnumerable with IFormEnhancer + public CaptureSupportInfo( + InternetExplorerCaptureHelper internetExplorerCaptureHelper, + IEnumerable formEnhancers = null + ) + { + InternetExplorerCaptureHelper = internetExplorerCaptureHelper; + FormEnhancers = formEnhancers; + } + + public InternetExplorerCaptureHelper InternetExplorerCaptureHelper { get; } + + public IEnumerable FormEnhancers { get; } + } +} diff --git a/src/Greenshot/Components/GreenshotServer.cs b/src/Greenshot/Components/GreenshotServer.cs index 614a5f885..129f71a15 100644 --- a/src/Greenshot/Components/GreenshotServer.cs +++ b/src/Greenshot/Components/GreenshotServer.cs @@ -61,7 +61,7 @@ namespace Greenshot.Components private readonly HotkeyService _hotkeyService; private readonly DestinationHolder _destinationHolder; private ServiceHost _host; - private IEnumerable _formEnhancers; + private CaptureSupportInfo _captureSupportInfo; public static string Identity { @@ -78,9 +78,9 @@ namespace Greenshot.Components MainForm mainForm, HotkeyService hotkeyService, DestinationHolder destinationHolder, - IEnumerable formEnhancers = null) + CaptureSupportInfo captureSupportInfo) { - _formEnhancers = formEnhancers; + _captureSupportInfo = captureSupportInfo; _coreConfiguration = coreConfiguration; _mainForm = mainForm; _hotkeyService = hotkeyService; @@ -141,7 +141,7 @@ namespace Greenshot.Components Log.Debug().WriteLine("Open file requested: {0}", filename); if (File.Exists(filename)) { - CaptureHelper.CaptureFile(_formEnhancers, filename); + CaptureHelper.CaptureFile(_captureSupportInfo, filename); } else { @@ -171,13 +171,13 @@ namespace Greenshot.Components switch (captureMode.ToLower()) { case "region": - CaptureHelper.CaptureRegion(_formEnhancers, false, destination); + CaptureHelper.CaptureRegion(_captureSupportInfo, false, destination); break; case "window": - CaptureHelper.CaptureWindow(_formEnhancers, false, destination); + CaptureHelper.CaptureWindow(_captureSupportInfo, false, destination); break; case "fullscreen": - CaptureHelper.CaptureFullscreen(_formEnhancers, false, ScreenCaptureMode.FullScreen, destination); + CaptureHelper.CaptureFullscreen(_captureSupportInfo, false, ScreenCaptureMode.FullScreen, destination); break; default: Log.Warn().WriteLine("Unknown capture option"); diff --git a/src/Greenshot/Components/HotkeyService.cs b/src/Greenshot/Components/HotkeyService.cs index 7f0cb7c4a..226abccdb 100644 --- a/src/Greenshot/Components/HotkeyService.cs +++ b/src/Greenshot/Components/HotkeyService.cs @@ -42,13 +42,13 @@ namespace Greenshot.Components { private static readonly LogSource Log = new LogSource(); private readonly ICoreConfiguration _coreConfiguration; - private readonly IEnumerable _formEnhancers; + private readonly CaptureSupportInfo _captureSupportInfo; private IDisposable _subscriptions; - public HotkeyService(ICoreConfiguration coreConfiguration, IEnumerable formEnhancers = null) + public HotkeyService(ICoreConfiguration coreConfiguration, CaptureSupportInfo captureSupportInfo) { _coreConfiguration = coreConfiguration; - _formEnhancers = formEnhancers; + _captureSupportInfo = captureSupportInfo; } /// @@ -120,36 +120,36 @@ namespace Greenshot.Components private void CaptureRegion(KeyboardHookEventArgs keyboardHookEventArgs) { - Execute.BeginOnUIThread(() => CaptureHelper.CaptureRegion(_formEnhancers, true)); + Execute.BeginOnUIThread(() => CaptureHelper.CaptureRegion(_captureSupportInfo, true)); } private void CaptureWindow(KeyboardHookEventArgs keyboardHookEventArgs) { if (_coreConfiguration.CaptureWindowsInteractive) { - Execute.BeginOnUIThread(() => CaptureHelper.CaptureWindowInteractive(_formEnhancers, true)); + Execute.BeginOnUIThread(() => CaptureHelper.CaptureWindowInteractive(_captureSupportInfo, true)); } else { - Execute.BeginOnUIThread(() => CaptureHelper.CaptureWindow(_formEnhancers, true)); + Execute.BeginOnUIThread(() => CaptureHelper.CaptureWindow(_captureSupportInfo, true)); } } private void CaptureFullscreen(KeyboardHookEventArgs keyboardHookEventArgs) { - Execute.BeginOnUIThread(() => CaptureHelper.CaptureFullscreen(_formEnhancers, true, _coreConfiguration.ScreenCaptureMode)); + Execute.BeginOnUIThread(() => CaptureHelper.CaptureFullscreen(_captureSupportInfo, true, _coreConfiguration.ScreenCaptureMode)); } private void CaptureLast(KeyboardHookEventArgs keyboardHookEventArgs) { - Execute.BeginOnUIThread(() => CaptureHelper.CaptureLastRegion(_formEnhancers, true)); + Execute.BeginOnUIThread(() => CaptureHelper.CaptureLastRegion(_captureSupportInfo, true)); } private void CaptureIe(KeyboardHookEventArgs keyboardHookEventArgs) { if (_coreConfiguration.IECapture) { - Execute.BeginOnUIThread(() => CaptureHelper.CaptureIe(_formEnhancers, true, null)); + Execute.BeginOnUIThread(() => CaptureHelper.CaptureIe(_captureSupportInfo, true, null)); } } } diff --git a/src/Greenshot/Forms/MainForm.cs b/src/Greenshot/Forms/MainForm.cs index d5651603a..7bdc6122f 100644 --- a/src/Greenshot/Forms/MainForm.cs +++ b/src/Greenshot/Forms/MainForm.cs @@ -63,6 +63,7 @@ using Dapplo.Config.Ini; using Dapplo.Windows.User32; using Greenshot.Addons.Resources; using Greenshot.Addons.Interfaces; +using Greenshot.Components; #endregion @@ -77,6 +78,7 @@ namespace Greenshot.Forms private readonly ICoreConfiguration _coreConfiguration; private readonly IWindowManager _windowManager; private readonly IGreenshotLanguage _greenshotLanguage; + private readonly InternetExplorerCaptureHelper _internetExplorerCaptureHelper; private readonly Func> _configViewModelFactory; private readonly Func> _aboutFormFactory; @@ -84,7 +86,7 @@ namespace Greenshot.Forms private readonly Timer _doubleClickTimer = new Timer(); private readonly DestinationHolder _destinationHolder; - private readonly IEnumerable _formEnhancers; + private readonly CaptureSupportInfo _captureSupportInfo; // Thumbnail preview private ThumbnailForm _thumbnailForm; @@ -94,20 +96,22 @@ namespace Greenshot.Forms public MainForm(ICoreConfiguration coreConfiguration, IWindowManager windowManager, IGreenshotLanguage greenshotLanguage, + InternetExplorerCaptureHelper internetExplorerCaptureHelper, GreenshotResources greenshotResources, Func> configViewModelFactory, Func> aboutFormFactory, DestinationHolder destinationHolder, - IEnumerable formEnhancers = null + CaptureSupportInfo captureSupportInfo ) : base(greenshotLanguage) { _coreConfiguration = coreConfiguration; _windowManager = windowManager; _greenshotLanguage = greenshotLanguage; + _internetExplorerCaptureHelper = internetExplorerCaptureHelper; _configViewModelFactory = configViewModelFactory; _aboutFormFactory = aboutFormFactory; _destinationHolder = destinationHolder; - _formEnhancers = formEnhancers; + _captureSupportInfo = captureSupportInfo; Instance = this; } @@ -287,7 +291,7 @@ namespace Greenshot.Forms if (File.Exists(_coreConfiguration.OutputFileAsFullpath)) { - CaptureHelper.CaptureFile(_formEnhancers, _coreConfiguration.OutputFileAsFullpath, _destinationHolder.SortedActiveDestinations.Find("Editor")); + CaptureHelper.CaptureFile(_captureSupportInfo, _coreConfiguration.OutputFileAsFullpath, _destinationHolder.SortedActiveDestinations.Find("Editor")); } break; case ClickActions.OPEN_SETTINGS: @@ -459,7 +463,7 @@ namespace Greenshot.Forms if (File.Exists(openFileDialog.FileName)) { - CaptureHelper.CaptureFile(_formEnhancers, openFileDialog.FileName); + CaptureHelper.CaptureFile(_captureSupportInfo, openFileDialog.FileName); } } @@ -467,7 +471,7 @@ namespace Greenshot.Forms { if (_coreConfiguration.IECapture) { - CaptureHelper.CaptureIe(_formEnhancers, true, null); + CaptureHelper.CaptureIe(_captureSupportInfo, true, null); } } @@ -486,7 +490,7 @@ namespace Greenshot.Forms // IE context menu code try { - if (_coreConfiguration.IECapture && IeCaptureHelper.IsIeRunning()) + if (_coreConfiguration.IECapture && _internetExplorerCaptureHelper.IsIeRunning()) { contextmenu_captureie.Enabled = true; contextmenu_captureiefromlist.Enabled = true; @@ -543,7 +547,7 @@ namespace Greenshot.Forms } try { - var tabs = IeCaptureHelper.GetBrowserTabs(); + var tabs = _internetExplorerCaptureHelper.GetBrowserTabs(); contextmenu_captureiefromlist.DropDownItems.Clear(); if (tabs.Count > 0) { @@ -606,7 +610,7 @@ namespace Greenshot.Forms var allScreensBounds = DisplayInfo.ScreenBounds; var captureScreenItem = new ToolStripMenuItem(_greenshotLanguage.ContextmenuCapturefullscreenAll); - captureScreenItem.Click += (o, args) => BeginInvoke((MethodInvoker) (() => CaptureHelper.CaptureFullscreen(_formEnhancers, false, ScreenCaptureMode.FullScreen))); + captureScreenItem.Click += (o, args) => BeginInvoke((MethodInvoker) (() => CaptureHelper.CaptureFullscreen(_captureSupportInfo, false, ScreenCaptureMode.FullScreen))); captureScreenMenuItem.DropDownItems.Add(captureScreenItem); foreach (var displayInfo in DisplayInfo.AllDisplayInfos) { @@ -629,7 +633,7 @@ namespace Greenshot.Forms deviceAlignment += " " + _greenshotLanguage.ContextmenuCapturefullscreenRight; } captureScreenItem = new ToolStripMenuItem(deviceAlignment); - captureScreenItem.Click += (o, args) => BeginInvoke((MethodInvoker) (() => CaptureHelper.CaptureRegion(_formEnhancers, false, screenToCapture.Bounds))); + captureScreenItem.Click += (o, args) => BeginInvoke((MethodInvoker) (() => CaptureHelper.CaptureRegion(_captureSupportInfo, false, screenToCapture.Bounds))); captureScreenMenuItem.DropDownItems.Add(captureScreenItem); } } @@ -724,12 +728,12 @@ namespace Greenshot.Forms private void CaptureAreaToolStripMenuItemClick(object sender, EventArgs e) { - BeginInvoke((MethodInvoker) delegate { CaptureHelper.CaptureRegion(_formEnhancers, false); }); + BeginInvoke((MethodInvoker) delegate { CaptureHelper.CaptureRegion(_captureSupportInfo, false); }); } private void CaptureClipboardToolStripMenuItemClick(object sender, EventArgs e) { - BeginInvoke(new System.Action(() => CaptureHelper.CaptureClipboard(_formEnhancers))); + BeginInvoke(new System.Action(() => CaptureHelper.CaptureClipboard(_captureSupportInfo))); } private void OpenFileToolStripMenuItemClick(object sender, EventArgs e) @@ -739,17 +743,17 @@ namespace Greenshot.Forms private void CaptureFullScreenToolStripMenuItemClick(object sender, EventArgs e) { - BeginInvoke((MethodInvoker) delegate { CaptureHelper.CaptureFullscreen(_formEnhancers, false, _coreConfiguration.ScreenCaptureMode); }); + BeginInvoke((MethodInvoker) delegate { CaptureHelper.CaptureFullscreen(_captureSupportInfo, false, _coreConfiguration.ScreenCaptureMode); }); } private void Contextmenu_capturelastregionClick(object sender, EventArgs e) { - BeginInvoke((MethodInvoker) delegate { CaptureHelper.CaptureLastRegion(_formEnhancers, false); }); + BeginInvoke((MethodInvoker) delegate { CaptureHelper.CaptureLastRegion(_captureSupportInfo, false); }); } private void Contextmenu_capturewindow_Click(object sender, EventArgs e) { - BeginInvoke((MethodInvoker) delegate { CaptureHelper.CaptureWindowInteractive(_formEnhancers, false); }); + BeginInvoke((MethodInvoker) delegate { CaptureHelper.CaptureWindowInteractive(_captureSupportInfo, false); }); } private void Contextmenu_capturewindowfromlist_Click(object sender, EventArgs e) @@ -760,7 +764,7 @@ namespace Greenshot.Forms try { var windowToCapture = (InteropWindow) clickedItem.Tag; - CaptureHelper.CaptureWindow(_formEnhancers, windowToCapture); + CaptureHelper.CaptureWindow(_captureSupportInfo, windowToCapture); } catch (Exception exception) { @@ -792,7 +796,7 @@ namespace Greenshot.Forms } try { - IeCaptureHelper.ActivateIeTab(ieWindowToCapture, tabData.Value); + _internetExplorerCaptureHelper.ActivateIeTab(ieWindowToCapture, tabData.Value); } catch (Exception exception) { @@ -800,7 +804,7 @@ namespace Greenshot.Forms } try { - CaptureHelper.CaptureIe(_formEnhancers, false, ieWindowToCapture); + CaptureHelper.CaptureIe(_captureSupportInfo, false, ieWindowToCapture); } catch (Exception exception) { diff --git a/src/Greenshot/Greenshot.csproj b/src/Greenshot/Greenshot.csproj index 6dab17b4e..d4cc30648 100644 --- a/src/Greenshot/Greenshot.csproj +++ b/src/Greenshot/Greenshot.csproj @@ -2,13 +2,17 @@ WinExe - net471;netcoreapp3.0 + + net471 latest icons\applicationIcon\icon.ico True greenshot.manifest Greenshot Greenshot + + AnyCPU;x86 diff --git a/src/Greenshot/GreenshotAutofacModule.cs b/src/Greenshot/GreenshotAutofacModule.cs index 07c476a8b..042247159 100644 --- a/src/Greenshot/GreenshotAutofacModule.cs +++ b/src/Greenshot/GreenshotAutofacModule.cs @@ -72,6 +72,11 @@ namespace Greenshot .As() .SingleInstance(); + builder + .RegisterType() + .AsSelf() + .SingleInstance(); + builder .RegisterType() .As() diff --git a/src/Greenshot/Helpers/CaptureHelper.cs b/src/Greenshot/Helpers/CaptureHelper.cs index cf05f3fc3..fa0874d0d 100644 --- a/src/Greenshot/Helpers/CaptureHelper.cs +++ b/src/Greenshot/Helpers/CaptureHelper.cs @@ -65,8 +65,8 @@ namespace Greenshot.Helpers private static readonly ICoreConfiguration CoreConfig = new CoreConfigurationImpl(); private readonly bool _captureMouseCursor; private ICapture _capture; + private readonly CaptureSupportInfo _captureSupportInfo; private CaptureMode _captureMode; - private readonly IEnumerable _formEnhancers; private NativeRect _captureRect = NativeRect.Empty; private ScreenCaptureMode _screenCaptureMode = ScreenCaptureMode.Auto; // TODO: when we get the screen capture code working correctly, this needs to be enabled @@ -75,28 +75,28 @@ namespace Greenshot.Helpers private readonly DestinationHolder _destinationHolder; private readonly IEnumerable _processors; - public CaptureHelper(IEnumerable formEnhancers, CaptureMode captureMode) + public CaptureHelper(CaptureSupportInfo captureSupportInfo, CaptureMode captureMode) { + _captureSupportInfo = captureSupportInfo; _captureMode = captureMode; - _formEnhancers = formEnhancers; _capture = new Capture(); _destinationHolder = DestinationHolder.Instance; // TODO: Fix this _processors = Enumerable.Empty(); } - public CaptureHelper(IEnumerable formEnhancers, CaptureMode captureMode, bool captureMouseCursor) : this(formEnhancers, captureMode) + public CaptureHelper(CaptureSupportInfo captureSupportInfo, CaptureMode captureMode, bool captureMouseCursor) : this(captureSupportInfo, captureMode) { _captureMouseCursor = captureMouseCursor; } - public CaptureHelper(IEnumerable formEnhancers, CaptureMode captureMode, bool captureMouseCursor, ScreenCaptureMode screenCaptureMode) : this(formEnhancers, captureMode) + public CaptureHelper(CaptureSupportInfo captureSupportInfo, CaptureMode captureMode, bool captureMouseCursor, ScreenCaptureMode screenCaptureMode) : this(captureSupportInfo, captureMode) { _captureMouseCursor = captureMouseCursor; _screenCaptureMode = screenCaptureMode; } - public CaptureHelper(IEnumerable formEnhancers, CaptureMode captureMode, bool captureMouseCursor, IDestination destination) : this(formEnhancers, captureMode, captureMouseCursor) + public CaptureHelper(CaptureSupportInfo captureSupportInfo, CaptureMode captureMode, bool captureMouseCursor, IDestination destination) : this(captureSupportInfo, captureMode, captureMouseCursor) { if (destination != null) { @@ -140,100 +140,100 @@ namespace Greenshot.Helpers } } - public static void CaptureClipboard(IEnumerable formEnhancers, IDestination destination = null) + public static void CaptureClipboard(CaptureSupportInfo captureSupportInfo, IDestination destination = null) { - using (var captureHelper = new CaptureHelper(formEnhancers, CaptureMode.Clipboard, false, destination)) + using (var captureHelper = new CaptureHelper(captureSupportInfo, CaptureMode.Clipboard, false, destination)) { captureHelper.MakeCapture(); } } - public static void CaptureRegion(IEnumerable formEnhancers, bool captureMouse, IDestination destination = null) + public static void CaptureRegion(CaptureSupportInfo captureSupportInfo, bool captureMouse, IDestination destination = null) { - using (var captureHelper = new CaptureHelper(formEnhancers, CaptureMode.Region, captureMouse, destination)) + using (var captureHelper = new CaptureHelper(captureSupportInfo, CaptureMode.Region, captureMouse, destination)) { captureHelper.MakeCapture(); } } - public static void CaptureRegion(IEnumerable formEnhancers, bool captureMouse, NativeRect region) + public static void CaptureRegion(CaptureSupportInfo captureSupportInfo, bool captureMouse, NativeRect region) { - using (var captureHelper = new CaptureHelper(formEnhancers, CaptureMode.Region, captureMouse)) + using (var captureHelper = new CaptureHelper(captureSupportInfo, CaptureMode.Region, captureMouse)) { captureHelper.MakeCapture(region); } } - public static void CaptureFullscreen(IEnumerable formEnhancers, bool captureMouse, ScreenCaptureMode screenCaptureMode, IDestination destination = null) + public static void CaptureFullscreen(CaptureSupportInfo captureSupportInfo, bool captureMouse, ScreenCaptureMode screenCaptureMode, IDestination destination = null) { - using (var captureHelper = new CaptureHelper(formEnhancers, CaptureMode.FullScreen, captureMouse, destination)) + using (var captureHelper = new CaptureHelper(captureSupportInfo, CaptureMode.FullScreen, captureMouse, destination)) { captureHelper._screenCaptureMode = screenCaptureMode; captureHelper.MakeCapture(); } } - public static void CaptureLastRegion(IEnumerable formEnhancers, bool captureMouse) + public static void CaptureLastRegion(CaptureSupportInfo captureSupportInfo, bool captureMouse) { - using (var captureHelper = new CaptureHelper(formEnhancers, CaptureMode.LastRegion, captureMouse)) + using (var captureHelper = new CaptureHelper(captureSupportInfo, CaptureMode.LastRegion, captureMouse)) { captureHelper.MakeCapture(); } } - public static void CaptureIe(IEnumerable formEnhancers, bool captureMouse, IInteropWindow windowToCapture) + public static void CaptureIe(CaptureSupportInfo captureSupportInfo, bool captureMouse, IInteropWindow windowToCapture) { - using (var captureHelper = new CaptureHelper(formEnhancers, CaptureMode.IE, captureMouse)) + using (var captureHelper = new CaptureHelper(captureSupportInfo, CaptureMode.IE, captureMouse)) { captureHelper.SelectedCaptureWindow = windowToCapture; captureHelper.MakeCapture(); } } - public static void CaptureWindow(IEnumerable formEnhancers, bool captureMouse, IDestination destination = null) + public static void CaptureWindow(CaptureSupportInfo captureSupportInfo, bool captureMouse, IDestination destination = null) { - using (var captureHelper = new CaptureHelper(formEnhancers, CaptureMode.ActiveWindow, captureMouse, destination)) + using (var captureHelper = new CaptureHelper(captureSupportInfo, CaptureMode.ActiveWindow, captureMouse, destination)) { captureHelper.MakeCapture(); } } - public static void CaptureWindow(IEnumerable formEnhancers, IInteropWindow windowToCapture) + public static void CaptureWindow(CaptureSupportInfo captureSupportInfo, IInteropWindow windowToCapture) { - using (var captureHelper = new CaptureHelper(formEnhancers, CaptureMode.ActiveWindow)) + using (var captureHelper = new CaptureHelper(captureSupportInfo, CaptureMode.ActiveWindow)) { captureHelper.SelectedCaptureWindow = windowToCapture; captureHelper.MakeCapture(); } } - public static void CaptureWindowInteractive(IEnumerable formEnhancers, bool captureMouse) + public static void CaptureWindowInteractive(CaptureSupportInfo captureSupportInfo, bool captureMouse) { - using (var captureHelper = new CaptureHelper(formEnhancers, CaptureMode.Window)) + using (var captureHelper = new CaptureHelper(captureSupportInfo, CaptureMode.Window)) { captureHelper.MakeCapture(); } } - public static void CaptureFile(IEnumerable formEnhancers, string filename) + public static void CaptureFile(CaptureSupportInfo captureSupportInfo, string filename) { - using (var captureHelper = new CaptureHelper(formEnhancers, CaptureMode.File)) + using (var captureHelper = new CaptureHelper(captureSupportInfo, CaptureMode.File)) { captureHelper.MakeCapture(filename); } } - public static void CaptureFile(IEnumerable formEnhancers, string filename, IDestination destination) + public static void CaptureFile(CaptureSupportInfo captureSupportInfo, string filename, IDestination destination) { - using (var captureHelper = new CaptureHelper(formEnhancers, CaptureMode.File)) + using (var captureHelper = new CaptureHelper(captureSupportInfo, CaptureMode.File)) { captureHelper.AddDestination(destination).MakeCapture(filename); } } - public static void ImportCapture(IEnumerable formEnhancers, ICapture captureToImport) + public static void ImportCapture(CaptureSupportInfo captureSupportInfo, ICapture captureToImport) { - using (var captureHelper = new CaptureHelper(formEnhancers, CaptureMode.File)) + using (var captureHelper = new CaptureHelper(captureSupportInfo, CaptureMode.File)) { captureHelper._capture = captureToImport; captureHelper.HandleCapture(); @@ -355,7 +355,7 @@ namespace Greenshot.Helpers HandleCapture(); break; case CaptureMode.IE: - if (IeCaptureHelper.CaptureIe(_capture, SelectedCaptureWindow) != null) + if (_captureSupportInfo.InternetExplorerCaptureHelper.CaptureIe(_capture, SelectedCaptureWindow) != null) { _capture.CaptureDetails.AddMetaData("source", "Internet Explorer"); SetDpi(); @@ -782,7 +782,7 @@ namespace Greenshot.Helpers /// The capture to store the details /// What WindowCaptureModes to use /// ICapture - public static ICapture CaptureWindow(IInteropWindow windowToCapture, ICapture captureForWindow, WindowCaptureModes windowCaptureMode) + public ICapture CaptureWindow(IInteropWindow windowToCapture, ICapture captureForWindow, WindowCaptureModes windowCaptureMode) { if (captureForWindow == null) { @@ -802,11 +802,11 @@ namespace Greenshot.Helpers // 3) Otherwise use GDI (Screen might be also okay but might lose content) if (isAutoMode) { - if (CoreConfig.IECapture && IeCaptureHelper.IsIeWindow(windowToCapture)) + if (CoreConfig.IECapture && _captureSupportInfo.InternetExplorerCaptureHelper.IsIeWindow(windowToCapture)) { try { - var ieCapture = IeCaptureHelper.CaptureIe(captureForWindow, windowToCapture); + var ieCapture = _captureSupportInfo.InternetExplorerCaptureHelper.CaptureIe(captureForWindow, windowToCapture); if (ieCapture != null) { return ieCapture; @@ -1032,7 +1032,7 @@ namespace Greenshot.Helpers // } //} - using (var captureForm = new CaptureForm(CoreConfig, _capture, _windows, _formEnhancers)) + using (var captureForm = new CaptureForm(CoreConfig, _capture, _windows, _captureSupportInfo.FormEnhancers)) { // Make sure the form is hidden after showing, even if an exception occurs, so all errors will be shown DialogResult result;