I am writing a contact management program. I know how to read command-line arguments, and perform different methods based on what I find.
For example, program.exe "John Doe"
will start a new instance of the program and open up the first contact it finds named John Doe, program.exe -s John
will start a new instance of the program and search for contacts named "John," whereas simply running program.exe
will open start a new instance of the program with a blank search screen.
I would like to only run a single instance of the program, however. So when another program calls program.exe "John Doe"
, if there is already a process running, the arguments will be passed to that process and switch to a new search rather than opening a new window.
I know that this requires looking for previously running processes and inter process communication, but I've not done much of either in .Net and am having trouble getting started in the right direction or finding any good tutorials on the specific subject.
http://www.hanselman.com/blog/TheWeeklySourceCode31SingleInstanceWinFormsAndMicrosoftVisualBasicdll.aspx
Visual basic dll has a WindowsFormsApplicationBase that has StartupNextInstance event in which you can get the arguments of the second instance and the second instance can kill itself on detecting other instances.
This has been asked already C# : how to - single instance application that accepts new parameters?
may be this post can help you. See Here , also using IPC Channel
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With