How-to 單一執行個體的裝置應用程式(CE)

一般PC的應用程式在專案屬性中就有一個樣目可以勾選目前這個應用程式是不是"只能夠執行一次",而到了裝置專案中,卻沒有這個項目可以用,那麼該怎麼辦呢?

一般PC的應用程式在專案屬性中就有一個樣目可以勾選目前這個應用程式是不是"只能夠執行一次",而到了裝置專案中,卻沒有這個項目可以用,那麼該怎麼辦呢?

首先是一些參考資料,下面提到的解決方式也是利用搜尋來的;利用"PrevInstance"的關鍵字到MSDN上去搜尋就會有很多資料可以參考了,相關網址是這邊 http://social.msdn.microsoft.com/Search/zh-TW/?query=PrevInstance&addEnglish=1&ac=3

再來我們看看解決方式,首先再專案屬性中的"起始物件"我們要設定成"Sub Main",之後新增一個模組,模組內要包含Sub Main這個"方法"喔,之後利用下面程式碼的方式就可以了(這邊說明以VB為主,用C#的朋友請自行轉換一下)


Declare Function FindWindow Lib "coredll.dll" (ByVal className As Char(), ByVal WindowsName As Char()) As Integer
    Declare Function SetForegroundWindow Lib "coredll.dll" (ByVal hwnd As Integer) As Boolean

    Public Sub Main()
        Dim hWnd As Integer
        hWnd = FindWindow(Nothing, "你的應用程式標題名稱".ToCharArray)
        If hWnd <> 0 Then
            SetForegroundWindow(hWnd)
            Application.Exit()
            Exit Sub
        Else
            Application.Run(New Form1)
        End If
    End Sub