用App.PrevInstance 属性 判断.
Copy From MSDN:PrevInstance 属性      返回一个值,该值指示是否已经有前一个应用程序实例在运行。语法object.PrevInstanceobject 所在处代表一个对象表达式,其值是“应用于”列表中的一个对象。说明能够在 Load 事件过程中,使用此属性来指示是否已经运行了应用程序的一个实例。根据应用程序的要求,在 Microsoft Windows 操作环境中可能每次只想运行一个实例。注意   由于运行 Windows NT 的计算机可以支持多个平台,如果使用旨在同分布式 COM 一同使用的部件,则会导致下列情况: 用户平台上的客户程序请求部件提供一个对象,因为部件物理地位于同一台机器上,部件是在用户平台上启动的。
相应地,在另一台使用分布式 COM 的计算机上的客户程序请求部件提供一个对象。第二个部件的实例在系统平台上启动。 
现在有两个部件实例运行在不同平台上的同一台 NT 计算机上。这种情况并不是问题,除非部件的作者将对 App.PrevInstance 的测试放入部件启动代码以防止部件的多个复本运行在同一台计算机上。在这种情况下,远程部件创建将会失败。