我有一个MDI文件查看器.也就是说,我的程序可以在单个实例中打开多个文件.顺便说一句,我的应用程序不是单实例应用程序,因此用户可以根据需要打开任意数量的实例.
我想要的行为是
When the user double-clicks a file in Windows Explorer,
if there is an existing instance of my application,
then open the file with that instance
else
open the file with a new instance.
我认为这种行为很常见. Internet Explorer 9就像.所以,我相信一定有很多人已经实现了这一点.有没有完善的.NET(C#是首选的)示例代码(如果可能的话,不使用Win32 API)?
我想这个算法可能类似于以下内容,但我不知道它是最好还是最干净的代码来实现它(不使用Win32 API).
At the program's start up
1)If there are arguments in Main(),
check for existing instances.
2)If an instance exists,
send a message to the instance so that it can open the file.
Then exit.
3)else
open the file.
– – 添加 – – –
对于那些用现有答案回答我的问题的人.
我的申请不是单一申请!请.它就像Internet Explorer 9.我在看WCF P2P,因为我必须向我的应用程序的每个运行实例广播一个文件打开消息,然后选择其中一个.但是使用WCF P2P似乎有很多工作要做,因为它似乎是打开和监听TCP端口.什么是最佳做法?
最佳答案 我发现另一个非常相似:
Opening a “known file type” into running instance of custom app – .NET