Visual Basic 6.0 使用者可用的 App 物件
更新:2007 年 11 月
本主題將比較 Visual Basic 6.0 App 物件與 Visual Basic 2008 中的對等用法。
在 Visual Basic 6.0 中,App 物件為全域物件,可用來設定或擷取應用程式的相關資訊。在 Visual Basic 2008 中沒有 App 物件的直接對等用法。但是,大多數屬性、方法和事件都可以對應至 .NET Framework 中的對等成員。
概念上的差異
版本資訊屬性
App 物件的 Version Information 屬性 (Property) 在 Visual Basic 2008 中已取代為 Assembly 屬性 (Attribute)。Version Information 屬性 (Property) 是在 [專案屬性] 對話方塊中設定。Assembly 屬性 (Attribute) 則是在 [組件資訊] 對話方塊中設定,只要在 [專案設計工具] 的 [應用程式] 索引標籤上按一下 [應用程式資訊] 按鈕,即可取得此對話方塊。
注意事項: |
---|
Version Information 屬性 (Property) 會儲存在專案檔 (.vbp) 中,也可以使用記事本這類的文字編輯器進行編輯。Assembly 屬性 (Attribute) 會儲存在 AssemblyInfo.vb 檔案中,並且可在 [程式碼編輯器] 中進行編輯。 |
File Description 屬性
Visual Basic 6.0 App 物件可以同時擁有 FileDescription 和 Title 屬性。FileDescription 會決定出現在 [Windows 檔案總管] 中的描述文字。
在 Visual Basic 2008 中沒有 FileDescription 屬性。而是 Title 屬性會決定出現在 [Windows 檔案總管] 中的描述文字。
HelpFile 屬性
Visual Basic 6.0 中的 HelpFile 屬性會指定應用程式層級的說明檔。
在 Visual Basic 2008 中,說明檔是使用 HelpProvider 元件,並以每個表單為基準加以指定。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的說明支援。
Version 屬性
Visual Basic 6.0 中的 Major、Minor 和 Revision 屬性可用於傳回應用程式的版本號碼 (由三個部分所組成)。
在 Visual Basic 2008 中,版本資訊也包括 Build 屬性,並可使用單一 Version 屬性擷取完整的版本號碼 (由四個部分所組成)。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的版本編號方式。
Title 屬性
在 Visual Basic 6.0 中,App 物件的 Title 屬性可以用程式設計方式變更,這樣做可判斷顯示在 Windows [工作管理員] 中的名稱。
在 Visual Basic 2008 中,Title 屬性為唯讀。應用程式主要表單的 Text 屬性會決定 [工作管理員] 中顯示的名稱。您可以用程式設計方式設定 Text 屬性,但表單標題列中的文字也會變更。
TaskVisible 屬性
在 Visual Basic 6.0 中,App 物件的 TaskVisible 屬性會判斷應用程式是否會出現在 Windows 工作清單 (Windows 9x) 或 [工作管理員應用程式] 索引標籤 (Windows 2000 (含) 以後版本) 中。此屬性通常用於防止使用者關閉當做背景工作執行的應用程式。在大多數情況中,TaskVisible 屬性會與不顯示使用者介面的應用程式搭配使用。
Visual Basic 2008 中並沒有 TaskVisible 屬性的對等用法。不過,您可建立不會在工作清單中出現的「Windows 服務」或「主控台應用程式」(Console Application)。
PrevInstance 屬性
Visual Basic 6.0 中的 PrevInstance 屬性會判斷應用程式執行個體 (Instance) 是否已執行。通常應用程式啟動時便會呼叫 true,並且當它傳回 PrevInstance 時,就必須中止應用程式。
Visual Basic 2008 中沒有 PrevInstance 的直接對等用法。您可以控制是否可以透過在 [專案設計工具] 的 [應用程式] 索引標籤上,設定 [多個執行個體] 屬性,以允許應用程式的多個執行個體。在執行階段,當使用者嘗試啟動這個應用程式的另一個執行個體時,便會引發 NextInstanceStarted 事件。您可以將程式碼加入至這個事件處理常式,以啟動這個應用程式的第一個執行個體。
其他差異
在 Visual Basic 6.0 中有許多 App 物件屬性,而這些屬性會與目前已過時的 ActiveX 元件、OLE Automation 和其他技術 (Visual Basic 2008 都不支援) 相關。稍後在本主題的 App 物件屬性對等用法資料表中,將提及這些屬性。
App 物件的程式碼變更
下列程式碼範例會說明 App 物件的某些通用用法上,在 Visual Basic 6.0 和 Visual Basic 2008 之間的程式撰寫技巧差異。
顯示應用程式版本號碼的程式碼變更
下列範例會示範擷取應用程式的版本號碼,以及在標籤 (Label) 中顯示該版本號碼。
' Visual Basic 6.0
Label1.Caption = "Version: " & App.Major & "." & App.Minor & "." _
& App.Revision
' Visual Basic
Label1.Text = My.Application.Info.Version.ToString()
判斷應用程式路徑的程式碼變更
下列範例會示範如何透過擷取執行中應用程式的路徑,顯示儲存在應用程式資料夾中的影像檔。
' Visual Basic 6.0
Picture1.Picture = LoadPicture(App.Path & "\Logo.jpg")
' Visual Basic
PictureBox1.Image = System.Drawing.Bitmap.FromFile( _
My.Application.Info.DirectoryPath & "\Logo.jpg")
防止執行應用程式第二個執行個體的程式碼變更
下列範例會示範實作單一執行個體應用程式。
' Visual Basic 6.0
Private Sub Form_Load()
If App.PrevInstance = True Then
MsgBox("The application is already running!")
End If
End Sub
' Visual Basic
' Assumes that the Make Single Instance Application checkbox in the
' Project Designer has been checked.
Private Sub MyApplication_StartupNextInstance(ByVal sender As Object, _
ByVal e As Microsoft.VisualBasic.ApplicationServices. _
StartupNextInstanceEventArgs) Handles Me.StartupNextInstance
MsgBox("The application is already running!")
End Sub
App 物件屬性對等用法
下表列出 Visual Basic 6.0 App 物件的所有屬性和方法,以及 Visual Basic 2008 的對等用法。
Visual Basic 6.0 |
Visual Basic 2008 對等用法 |
||
---|---|---|---|
Comments |
|||
CompanyName |
|||
EXEName |
|||
FileDescription |
|||
HelpFile |
新實作。請使用 HelpProvider 元件。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的說明支援。 |
||
HInstance |
|||
LegalCopyright |
|||
LegalTrademarks |
|||
LogEvent method |
|||
LogMode LogPath |
新實作。如需詳細資訊,請參閱記錄來自應用程式的資訊。 |
||
Major |
My.Application.Info.Version 屬性
|
||
Minor |
My.Application.Info.Version 屬性
|
||
NonModalAllowed |
新實作。這是唯讀的屬性,並與 ActiveX .dll 檔案相關聯。Common Language Runtime 會自動管理此行為。 |
||
OleRequestPendingMsgText OleRequestPendingMsgTitle OleRequestPendingTimeout OleServerBusyMsgText OleServerBusyMsgTitle OleServerBusyRaiseError OleServerBusyTimeout |
沒有對等用法。這些屬性都與 OLE Automation (Visual Basic 2008 並不支援) 有關。 |
||
Path |
|||
PrevInstance |
|
||
ProductName |
|||
RetainedProject |
新實作。Visual Basic 2008 無法在記憶體中保留專案。 |
||
Revision |
My.Application.Info.Version 屬性
|
||
StartLogging method |
新實作。如需詳細資訊,請參閱記錄來自應用程式的資訊。 |
||
StartMode |
沒有對等用法。這個屬性與建立 ActiveX 元件 (Visual Basic 2008 並不支援) 有關。 |
||
TaskVisible |
新實作。若要建立不會出現在 [工作管理員] 的應用程式,請建立 [Windows 服務] 或 [主控台應用程式] 專案。 |
||
ThreadID |
新實作。這個屬性會傳回執行中執行緒的 ID。執行緒模型在 Visual Basic 2008 中有很大的不同。 |
||
Title |
|||
UnattendedApp |
新實作。針對 Visual Basic 2008 中的自主式應用程式,建立 [主控台應用程式] 專案。 |
升級注意事項
從 Visual Basic 6.0 升級應用程式時,只會升級 Major 和 Minor 屬性。Visual Basic 2008 會將新值指派給 Revision 和 Build 屬性。