|
dev
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Best practice for single instance and file associations?to a single instance and has file associations? There appear to be two methods for communicating verbs between Explorer and an application: command line and DDE. Going w/ the command line route, if there is already an instance of my application running, I need to detect that, and then communicate the command line to the 'main' instance using ? Remoting, I guess? Using the DDE route: this seems like the more standard route, however I'm not seeing anything that immediately supports this in the .Net Framework. ? There has to be something, as this is Windows standard behavior since when... Anyone have any thoughts/comments/pointers/suggestions on what is best/standard practice for handling file association verb requests in .Net? Thanks! Hi Julie,
Normally, the easiest way of implementing single instance application is using global named mutex. The principle of this approach leverages the fact that mutex kernel object can have a global name associated with it. Multiple processes can see the same registered name. So if the first process has created the name, the second instance(process)'s creation will fail. .Net has the build-in support for the named mutex, so it is easy to use this approach in .Net: "Ensuring that only a single instance of a .NET application is running" http://www.ai.uga.edu/mc/SingleInstance.html The remind requirement is passing the command line argument of the second instance to the first running instance. You can leverage any type of inter-process communication technologies to get this done, such as named pipe, socket, Remoting etc.. Sure, since .Net only has native support for .Net Remoting, it is recommended to use it. The article below demonstrated this: "Single Instance Application, Passing Command Line Arguments" http://www.codeproject.com/cs/threads/SingletonApp.asp Hope it helps. Best regards, Jeffrey Tan Microsoft Online Community Support ================================================== Get notification to my posts through email? Please refer to http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif ications. Note: The MSDN Managed Newsgroup support offering is for non-urgent issues where an initial response from the community or a Microsoft Support Engineer within 1 business day is acceptable. Please note that each follow up response may take approximately 2 business days as the support professional working with you may need further investigation to reach the most efficient resolution. The offering is not appropriate for situations that require urgent, real-time or phone-based interactions or complex project analysis and dump analysis issues. Issues of this nature are best handled working with a dedicated Microsoft Support Engineer by contacting Microsoft Customer Support Services (CSS) at http://msdn.microsoft.com/subscriptions/support/default.aspx. ================================================== This posting is provided "AS IS" with no warranties, and confers no rights. Jeffrey Tan[MSFT] wrote:
> Hi Julie, Perfect -- thanks.> > The remind requirement is passing the command line argument of the second > instance to the first running instance. You can leverage any type of > inter-process communication technologies to get this done, such as named > pipe, socket, Remoting etc.. Sure, since .Net only has native support for > Net Remoting, it is recommended to use it. The article below demonstrated > this: > "Single Instance Application, Passing Command Line Arguments" > http://www.codeproject.com/cs/threads/SingletonApp.asp |
|||||||||||||||||||||||