首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

请教一个关于防止多重启动的解决方案

2012-02-09 
请问一个关于防止多重启动的解决方案最近写一个vb.net的项目,要求不能多重启动,只允许有一个进程在内存里。

请问一个关于防止多重启动的解决方案
最近写一个vb.net的项目,要求不能多重启动,只允许有一个进程在内存里。如果已经启动一个了,要弹出一个提示信息。
小弟我在程序中用了以下的方法:
--------------------------- code ------------------------------------------
private System.Threading.Mutex mtx
mtx = New System.Threading.Mutex(True, Application.ProductName, flagNewRun)
If Not flagNewRun Then
  MsgBox("Application has already run.")
  End
End If
---------------------------------------
问题是,启动一个以后,试图启动再次启动一个,会弹出一个message信息框。
但是如果不关闭这个信息框,再启动一个,又会弹出一个信息框。如此重复会弹出很多。
请问,有什么方法可以改进成:从第二个开始无论启动多少次,只弹出一个信息框?
自己考虑的方法是统计一下进程中重名的个数,如果是2个,就不再出信息框。这样的方法可行吗?怎么统计呢?


[解决办法]
被你汗倒。
如果仅仅是为了只允许有一个进程在内存里,你完全可以在项目属性里,将“生成单个实例应用程序”前的小勾选上就行了。

搞的这么复杂干什么哩?
用VB.NET,就要一个字:懒!
[解决办法]
2003里没有的.

Public Shared Function PrevInstance() As Boolean
If UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0 Then
Return True
Else
Return False
End If
End Function

这就是判断数量的,你可以自己改一下,判断具体的数量对应的处理方式,是提示还是直接退出

热点排行