新聞中心
怎樣讓VB.NET做的應(yīng)用程序只啟動(dòng)一個(gè)實(shí)例
最簡(jiǎn)單的方法
成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站建設(shè)、成都網(wǎng)站制作與策劃設(shè)計(jì),襄城網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:襄城等地區(qū)。襄城做網(wǎng)站價(jià)格咨詢:18980820575
If UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) 0 Then End
前提是你的程序名別太普通了容易和別的進(jìn)程重名就不行了
VB.NET編的form程序,如何操作可以搞成只能運(yùn)行一個(gè)實(shí)例,也就是像微信一樣只能單開不能躲開?
在項(xiàng)目上右鍵,然后選擇屬性,打開如下圖所示的項(xiàng)目屬性對(duì)話框:
然后選擇左邊的“應(yīng)用程序”標(biāo)簽頁,再勾選上“生成單個(gè)實(shí)例應(yīng)用程序”。
vb net只運(yùn)行一個(gè)程序
方法一:通過Diagnostics.Process.GetProcessesByName函數(shù)來檢測(cè)程序是否已經(jīng)啟動(dòng)
Imports System.Windows.Forms
Module Module1
Sub Main()
'檢測(cè)多重啟動(dòng)
If Diagnostics.Process.GetProcessesByName( _
Diagnostics.Process.GetCurrentProcess.ProcessName).Length 1 Then
MessageBox.Show("已經(jīng)一個(gè)實(shí)例的本程序正在運(yùn)行。")
Return
End If
Application.Run(New Form())
End Sub
End Module
不過這個(gè)方法有個(gè)缺點(diǎn),如果用戶改了下exe的名字就檢測(cè)不到了,所以更好的方法如下
方法2:使用Mutex
Imports System.Windows.Forms
Module Module1
Sub Main()
Dim createdNew As Boolean
' 創(chuàng)建mutex
Dim mutex As System.Threading.Mutex = _
New System.Threading.Mutex(True, "YourAppName", createdNew)
If createdNew = False Then
MessageBox.Show("已經(jīng)一個(gè)實(shí)例的本程序正在運(yùn)行。")
Return
End If
Application.Run(New Form())
' 釋放mutex
mutex.ReleaseMutex()
End Sub
End Module
網(wǎng)站欄目:vb.net只運(yùn)行一個(gè) vb可以直接運(yùn)行嗎
標(biāo)題URL:http://fisionsoft.com.cn/article/dosojcs.html