試試看這樣行不:在應用程序設置中,勾選“生成單個實例應用程序”,然后在應用程序事件中處理這個事件
成都創(chuàng)新互聯(lián)公司致力于互聯(lián)網(wǎng)品牌建設與網(wǎng)絡營銷,包括網(wǎng)站設計、成都網(wǎng)站建設、SEO優(yōu)化、網(wǎng)絡推廣、整站優(yōu)化營銷策劃推廣、電子商務、移動互聯(lián)網(wǎng)營銷等。成都創(chuàng)新互聯(lián)公司為不同類型的客戶提供良好的互聯(lián)網(wǎng)應用定制及解決方案,成都創(chuàng)新互聯(lián)公司核心團隊十年專注互聯(lián)網(wǎng)開發(fā),積累了豐富的網(wǎng)站經(jīng)驗,為廣大企業(yè)客戶提供一站式企業(yè)網(wǎng)站建設服務,在網(wǎng)站建設行業(yè)內(nèi)樹立了良好口碑。
Private Sub MyApplication_StartupNextInstance(sender As Object, e As StartupNextInstanceEventArgs) Handles Me.StartupNextInstance
'這里的?e.CommandLine應該就是雙擊第二個文件時傳進來的命令行
End Sub
在項目上右鍵,然后選擇屬性,打開如下圖所示的項目屬性對話框:
然后選擇左邊的“應用程序”標簽頁,再勾選上“生成單個實例應用程序”。
最簡單的方法
If UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) 0 Then End
前提是你的程序名別太普通了容易和別的進程重名就不行了
方法一:通過Diagnostics.Process.GetProcessesByName函數(shù)來檢測程序是否已經(jīng)啟動
Imports System.Windows.Forms
Module Module1
Sub Main()
'檢測多重啟動
If Diagnostics.Process.GetProcessesByName( _
Diagnostics.Process.GetCurrentProcess.ProcessName).Length 1 Then
MessageBox.Show("已經(jīng)一個實例的本程序正在運行。")
Return
End If
Application.Run(New Form())
End Sub
End Module
不過這個方法有個缺點,如果用戶改了下exe的名字就檢測不到了,所以更好的方法如下
方法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)一個實例的本程序正在運行。")
Return
End If
Application.Run(New Form())
' 釋放mutex
mutex.ReleaseMutex()
End Sub
End Module
雖然你的想法是在 LoginBtn_Click 事件中將復雜的操作分離出去以減輕UI的負擔, 這很好完全沒有問題.
但是問題在于 Me.Invoke(dh)這里,若是ChkLogin里面仍然是大規(guī)模的操作呢 你的代碼就又變成將很復雜的操作扔給了UI, 當然會出現(xiàn)窗體無法拖動的情況了.
解決辦法很簡單, 很多種. 將ChkLogin()里的操作直接放在DelegateLogin()里面吧 me.invoke僅僅只是做簡單的輕量的刷新之類的操作就好了.
希望能幫上你的忙.
因為你Dim lByte As Byte 沒有聲名數(shù)組,
lSWiter.WriteByte(Nothing) '這句話也是錯誤的,你把文件流給寫入空了,所以第二次運行打開文件就沒有數(shù)據(jù)了。
多調(diào)試,跟蹤數(shù)據(jù),可以多學點經(jīng)驗。
本文標題:關于vb.net只允許開一個的信息
文章源于:http://muchs.cn/article4/hjcjie.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、網(wǎng)站策劃、網(wǎng)站維護、網(wǎng)站營銷、響應式網(wǎng)站、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)