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