2011-03-29 102 views
2

有沒有人使用VB.NET 2010能夠創建單實例應用程序? 我遵循MSDN示例,但它沒有Application.xaml文件。VB.NET:WPF單實例

將任何C#示例轉換爲VB不起作用,因爲我無法重寫Application.xaml中的Main子項(C#將其稱爲App.xaml)。

回答

2

您可以嘗試使用一個互斥。在項目屬性中,禁用應用程序框架並將Sub Main設置爲啓動對象。然後,一個模塊添加到您的項目:

Imports System.Threading 

Module EntryPoint 
    Sub Main() 
     Dim noPreviousInstance As Boolean 

     Using m As New Mutex(True, "Some Unique Identifier String", noPreviousInstance) 
      If Not noPreviousInstance Then 
       MessageBox.Show("Application is already started!") 
      Else 
       Dim mainWindow As New MainWindow() 
       Dim app As New Application() 
       app.Run(mainWindow) 
      End If 
     End Using 
    End Sub 
End Module 

使用這種方法,你將不得不通過調用應用程序的關閉方法來照顧你的應用程序的停機。

+0

這似乎工作正常,但有可能在application.xaml中找到的應用程序資源不再可用於Windows? – 2015-05-05 14:02:42

0

以下是一些可能的解決方案。在決定之前,我會先看看整個線程。確保在嘗試任何這些操作之前備份代碼,所以如果某個操作不起作用,您可以嘗試另一種操作。

http://social.msdn.microsoft.com/forums/en-US/wpf/thread/6c15b837-9149-4b07-8a25-3266949621a7/

+0

感謝您的鏈接 - 我已經試過這些。我追求更高級的技術...... – Henry 2011-03-29 23:54:53

+0

在一定程度上,單實例應用程序在WPF中是不可能的,除了給MacGyver一個解決方法外,沒有什麼選擇。你到底在想什麼? – CodeMouse92 2011-03-30 00:00:46

+0

來自此博客的代碼。代碼可以在底部下載。 http://blogs.microsoft.co.il/blogs/tomershamam/archive/2010/11/21/customizing-windows-7-taskbar-from-wpf-part-2-jumplist-custom-actions.aspx – Henry 2011-03-30 00:27:52