回 帖 发 新 帖 刷新版面

主题:防止同一个程序多次运行。 [VB.NET]

防止同一个程序多次运行。 
''*****************方法一:防止程序多次打开***************** 
'' 函数名: IsInstanceRunning 
'' 功 能: 判断工程是否已运行 
'' 参 数: 无 
'' 返回值: True 已运行 False 未运行 
''******************************************************* 
Public Function IsInstanceRunning() As Boolean 
Dim current As Process = System.Diagnostics.Process.GetCurrentProcess() 
Dim processes As Process() = System.Diagnostics.Process.GetProcessesByName(current.ProcessName) 
''Loop through the running processes in with the same name 
Dim p As Process 
For Each p In processes 
''Ignore the current process 
If p.Id <> current.Id Then 
''Make sure that the process is running from the exe file. 
If System.Reflection.Assembly.GetExecutingAssembly().Location.Replace("/", "\") = current.MainModule.FileName Then 
''Return the other process instance. 
Return True 
End If 
End If 
Next 
''No other instance was found, return null. 
Return False 
End Function ''RunningInstance 

''*****************方法二:防止程序多次打开***************** 
Imports System.Diagnostics 
If UBound(Process.GetProcessesByName(Process.GetCurrentProcess.ProcessName)) _ 
> 0 Then Eixt Sub 
''Process.GetCurrentProcess.ProcessName 获取当前运行程序的名称。 

文章转自:http://www.aaiso.com/blog/more.asp?name=jpzlove&id=190
[em18][em18][em19][em16]

回复列表 (共1个回复)

沙发


我没有制作过,但据说可以制作一个布尔性质的相克体,如果检测到一个相克体就不让后来运行的程序运行.思路如此,本人还没去尝试过,因为本人开发的程序反而希望可以多个同时运行,以增加处理速度.

我来回复

您尚未登录,请登录后再回复。点此登录或注册