2013-04-18 120 views
-2

问题出在这里。在我们的程序中,我们有一个客户可以自己编辑的附加组件(机器视觉)。我们在VB.NET 2010中为此附加组件提供了一个模板。然后,他们复制此模板并将其重命名为(无论他们喜欢什么),并编辑几件事情。问题是我想限制客户一次打开此模板的多个副本。停止一次运行多个程序

显然我选择了单个实例,但由于它们实际上是不同的程序,所以这只会阻止它们打开两次相同的模板。我的第一个想法是,我可以更改进程名称并在程序集名称前放置一些通用的(myCompany - ),但我认为这不可能。我想知道是否有人知道另一种方法来检查这个程序是否打开。很显然,我们可以编辑我们的模板,以便在模板的所有副本中放置一些东西(可以检查),但我想不出任何可用的东西。

+0

为什么你想限制客户打开多个模板副本? – jsedano

+0

这是Microsoft Office的加载项吗?还是对于Visual Studio?或者是其他东西?我真的不知道你的意思是“模板”。用户如何打开它?它是否包含启动时运行的任何代码?我会建议使用信号灯或其他类型的锁。 –

回答

1

我不明白你为什么要防止模板被显示多次。我从来没有尝试过这样的事情,但我会尝试使用System.Diagnostics.Process.Kill,并杀死程序的任何新实例。因此,您需要使用程序来监视进程名称是否不止一次启动,并终止每次启动,但第一次启动。

0

感谢您的所有意见。我其实今天早上刚刚开始工作。这更多的是一个混乱的东西。视觉程序(模板)连接到硬件摄像头。该相机只能连接一次,因此第二个模板打开时会打开并显示错误。

我提出的修正是这样的 - 顾客把所有这些文件夹放在一个Vision文件夹中,并且指示将该文件夹命名为与程序集或进程名称相同的名称,所以我只是在文件夹中搜索并且将如果已经有一个打开了任何文件夹名称的程序,则停止表单的启动。也许有点混乱,但它是有用的。