diff --git a/Mk0.Software.ImageSorter/Main.Designer.cs b/Mk0.Software.ImageSorter/Main.Designer.cs index 29c210d..8a15e1a 100644 --- a/Mk0.Software.ImageSorter/Main.Designer.cs +++ b/Mk0.Software.ImageSorter/Main.Designer.cs @@ -472,8 +472,9 @@ this.MinimumSize = new System.Drawing.Size(983, 605); this.Name = "Main"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Image Sorter v1.27 | © 2015-2019 by manuelkamper.com"; + this.Text = "Image Sorter v1.28 | © 2015-2019 by manuelkamper.com"; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Main_FormClosing); + this.Load += new System.EventHandler(this.Main_Load); this.Shown += new System.EventHandler(this.Main_Shown); this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Main_KeyDown); this.Resize += new System.EventHandler(this.Main_ResizeEnd); diff --git a/Mk0.Software.ImageSorter/Main.cs b/Mk0.Software.ImageSorter/Main.cs index da8e2eb..f67bd15 100644 --- a/Mk0.Software.ImageSorter/Main.cs +++ b/Mk0.Software.ImageSorter/Main.cs @@ -6,7 +6,6 @@ using Mk0.Tools.Randomization; using System; using System.Collections.Generic; using System.ComponentModel; -using System.Data; using System.Diagnostics; using System.Drawing; using System.Drawing.Imaging; @@ -41,21 +40,48 @@ namespace Mk0.Software.ImageSorter private string zoomType = "auto"; private string startuppath; private string startupimage; + public string[] Args; - public Main(string startuppath) + public Main() { InitializeComponent(); banner = new Banner(components, panel3, pictureBox1, pictureBox2, label1, label2); pictureBox.Cursor = grabCursor; DoubleBuffered = true; - if (!string.IsNullOrEmpty(startuppath) && File.Exists(startuppath)) - { - this.startuppath = Path.GetDirectoryName(startuppath); - startupimage = Path.GetFileName(startuppath); - } SetDefaultPath(); } + private void Main_Load(object sender, EventArgs e) + { + if (Args != null) + { + ProcessParameters(null, Args); + Args = null; + } + } + + public delegate void ProcessParametersDelegate(object sender, string[] args); + public void ProcessParameters(object sender, string[] args) + { + if (args != null && args.Length != 0) + { + if (!string.IsNullOrEmpty(args[0]) && File.Exists(args[0])) + { + startuppath = Path.GetDirectoryName(args[0]); + startupimage = Path.GetFileName(args[0]); + if (!string.IsNullOrEmpty(startuppath) && File.Exists(startuppath)) + { + startuppath = Path.GetDirectoryName(startuppath); + startupimage = Path.GetFileName(startuppath); + } + SetDefaultPath(); + SearchImages(); + CountPicsInPath(); + LoadPicture(GetImageIndex(Path.Combine(startuppath, startupimage))); + } + } + } + /// /// Default: Lädt das erste Bild /// diff --git a/Mk0.Software.ImageSorter/Mk0.Software.ImageSorter.csproj b/Mk0.Software.ImageSorter/Mk0.Software.ImageSorter.csproj index 89e6b0e..37b3458 100644 --- a/Mk0.Software.ImageSorter/Mk0.Software.ImageSorter.csproj +++ b/Mk0.Software.ImageSorter/Mk0.Software.ImageSorter.csproj @@ -95,10 +95,6 @@ ..\Mk0.Tools.Randomization.dll False - - ..\Mk0.Tools.SingleInstance.dll - False - @@ -175,7 +171,6 @@ - diff --git a/Mk0.Software.ImageSorter/Program.cs b/Mk0.Software.ImageSorter/Program.cs index b29ff39..b47ab2b 100644 --- a/Mk0.Software.ImageSorter/Program.cs +++ b/Mk0.Software.ImageSorter/Program.cs @@ -1,6 +1,5 @@ using System; -using System.Windows.Forms; -using Mk0.Tools.SingleInstance; +using Microsoft.VisualBasic.ApplicationServices; namespace Mk0.Software.ImageSorter { @@ -12,9 +11,39 @@ namespace Mk0.Software.ImageSorter [STAThread] static void Main(string[] args) { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - SingleApplication.Run(args.Length == 0 ? new Main(string.Empty) : new Main(args[0]), Properties.Settings.Default.singleInstance); + App myApp = new App(); + myApp.Run(args); + } + + class App : WindowsFormsApplicationBase + { + public App() + { + IsSingleInstance = Properties.Settings.Default.singleInstance; + EnableVisualStyles = true; + + ShutdownStyle = ShutdownMode.AfterMainFormCloses; + StartupNextInstance += new StartupNextInstanceEventHandler(SIApp_StartupNextInstance); + } + + protected override void OnCreateMainForm() + { + MainForm = new Main(); + ((Main)MainForm).Args = new string[CommandLineArgs.Count]; + CommandLineArgs.CopyTo(((Main)MainForm).Args, 0); + } + + protected void SIApp_StartupNextInstance(object sender, StartupNextInstanceEventArgs eventArgs) + { + string[] args = new string[eventArgs.CommandLine.Count]; + eventArgs.CommandLine.CopyTo(args, 0); + + object[] parameters = new object[2]; + parameters[0] = MainForm; + parameters[1] = args; + + MainForm.Invoke(new Main.ProcessParametersDelegate(((Main)MainForm).ProcessParameters), parameters); + } } } } diff --git a/Mk0.Software.ImageSorter/Properties/AssemblyInfo.cs b/Mk0.Software.ImageSorter/Properties/AssemblyInfo.cs index c25d0c0..e5ef9a9 100644 --- a/Mk0.Software.ImageSorter/Properties/AssemblyInfo.cs +++ b/Mk0.Software.ImageSorter/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern // übernehmen, indem Sie "*" eingeben: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.27.*")] +[assembly: AssemblyVersion("1.28.*")] //[assembly: AssemblyFileVersion("1.6.0.0")] diff --git a/Mk0.Software.ImageSorter/dll/Mk0.Tools.SingleInstance.dll b/Mk0.Software.ImageSorter/dll/Mk0.Tools.SingleInstance.dll deleted file mode 100644 index 490cde1..0000000 Binary files a/Mk0.Software.ImageSorter/dll/Mk0.Tools.SingleInstance.dll and /dev/null differ