У меня есть приложение WPF, которое может принимать несколько необязательных аргументов командной строки.
Это приложение также является приложением с одним экземпляром (используя мьютекс для закрытия любых экземпляров, если он уже открыт).
Что я хочу для этого сделать, так это то, что если кто-то пытается открыть приложение с некоторыми строковыми аргументами cmd, то приложение будет делать то, что должно делать с ними (в моем приложении оно открывает различные диалоги на основе cmd линия).
Какой самый простой способ добиться этого?
В коде psedo вот что я ищу
protected override void OnStartup(StartupEventArgs e)
{
bool mutexIsNew;
using (System.Threading.Mutex m =
new System.Threading.Mutex(true, "MyApplication", out mutexIsNew))
{
//if this is not the first instance of the app
if (!mutexIsNew)
{
//if there is some cmd line args
if (e.Args.Length > 0)
{
//send the args to the older instance so it can handle them
SendToOtherInstance(e.Args);
//shutdown this new instance
Application.Current.Shutdown();
}
}
}
base.OnStartup(e);
}