VB6
在程序运行时用如下语句:
if app.PrevInstance=true then
end
end if
VB 2005:
1. 在VB2005中,打开"属性"页,启用"应用程序“框架,选中" 单实例应用程序"前面复选框,就行了。
(WinCE中没有该属性设置,只能通过Findwindow函数,察看是否已经有程序的实例在运行。或者用下面的MUTEX)
2. MUTEX. (一下代码为2008)
' 引用Mutex的类
@H_403_31@Imports System.Threading
@H_403_31@Private @H_403_31@Sub Form1_Load( @H_403_31@ByVal sender @H_403_31@As System.Object, @H_403_31@ByVal e @H_403_31@As System.EventArgs) @H_403_31@Handles @H_403_31@MyBase .Load
' 定义Mutex的类
@H_403_31@Dim objMutex @H_403_31@As Mutex
' 得到应用程序的名称
@H_403_31@Dim AppName @H_403_31@As @H_403_31@String = @H_403_31@Assembly .GetExecutingAssembly().GetName().Name
' 用这个应用程序的名字,去实例化这个Mutex
objMutex = @H_403_31@New Mutex( @H_403_31@False ,AppName)
' 判断是否有相同的应用程序在运行;
@H_403_31@If objMutex.WaitOne( 0 , @H_403_31@False ) = @H_403_31@False @H_403_31@Then
objMutex.Close()
objMutex = @H_403_31@Nothing
MessageBox.Show( " 这个程序正在运行! " )
Close() ' 关闭这个应用程序
@H_403_31@Exit Sub
@H_403_31@End @H_403_31@If
@H_403_31@End Sub