Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I pass command-line arguments to an already-running process?

Tags:

.net

wcf

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.

like image 530
dlras2 Avatar asked Dec 28 '10 16:12

dlras2


2 Answers

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?

like image 59
Muhammad Hasan Khan Avatar answered Sep 23 '22 02:09

Muhammad Hasan Khan


may be this post can help you. See Here , also using IPC Channel

like image 42
TalentTuner Avatar answered Sep 22 '22 02:09

TalentTuner