摘要
使用過Visual Basic 6的開發人員幾乎都使用過App這個對象,它的功能強大人所共知,那么Visual Basic .NET中是否也有類似的對象呢?下面將會進一步說明。
--------------------------------------------------------------------------------
目錄
1. App簡介
2. 在VB.NET尋找類似功能
3. 簡單示例
4. 小結
--------------------------------------------------------------------------------
1. App簡介
在Visual Basic 6中,App是一個全局對象可以直接通過App關鍵字來訪問。App對象可以得到當前應用的標題、版本、路徑、執行文件名等信息,同時可以用于判斷應用的前一個實例是否運行。App對象在VB.NET中已經不存在了,但是我們仍然能從VB.NET中使用其它的對象獲得App的相同功能。
--------------------------------------------------------------------------------
2. 在VB.NET尋找類似功能
原Visual Basic 6 中App的Comments屬性類似Visual Basic .NET 中的System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly.Location).Comments屬性
原Visual Basic 6 中App的CompanyName屬性類似Visual Basic .NET 中的System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly.Location).CompanyName屬性
原Visual Basic 6 中App的EXEName屬性類似Visual Basic .NET 中的VB6.GetEXEName屬性
原Visual Basic 6 中App的FileDescription屬性類似Visual Basic .NET 中的System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly.Location).FileDescription屬性
原Visual Basic 6 中App的HelpFile屬性在Visual Basic .NET 中無類似屬性
原Visual Basic 6 中App的HInstance屬性類似Visual Basic .NET 中的VB6.GetHInstance屬性
原Visual Basic 6 中App的LegalCopyright屬性類似Visual Basic .NET 中的System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly.Location).LegalCopyright屬性
原Visual Basic 6 中App的LegalTrademarks屬性類似Visual Basic .NET 中的System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly.Location).LegalTrademarks屬性
原Visual Basic 6 中App的LogEvent方法在Visual Basic .NET 中無類似方法
原Visual Basic 6 中App的LogMode屬性在Visual Basic .NET 中無類似屬性
原Visual Basic 6 中App的LogPath屬性在Visual Basic .NET 中無類似屬性
原Visual Basic 6 中App的Major屬性類似Visual Basic .NET 中的System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly.Location).FileMajorPart屬性
原Visual Basic 6 中App的Minor屬性類似Visual Basic .NET 中的System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly.- Location).FileMinorPart屬性
原Visual Basic 6 中App的NonModalAllowed屬性在Visual Basic .NET 中無類似屬性
原Visual Basic 6 中App的OleRequestPendingMsgText屬性在Visual Basic .NET 中無類似屬性
原Visual Basic 6 中App的OleRequestPendingMsgTitle屬性在Visual Basic .NET 中無類似屬性
原Visual Basic 6 中App的OleRequestPendingTimeout屬性在Visual Basic .NET 中無類似屬性
原Visual Basic 6 中App的OleServerBusyMsgText屬性在Visual Basic .NET 中無類似屬性
原Visual Basic 6 中App的OleServerBusyMsgTitle屬性在Visual Basic .NET 中無類似屬性
原Visual Basic 6 中App的OleServerBusyRaiseError屬性在Visual Basic .NET 中無類似屬性
原Visual Basic 6 中App的OleServerBusyTimeout屬性在Visual Basic .NET 中無類似屬性
原Visual Basic 6 中App的Path屬性類似Visual Basic .NET 中的VB6.GetPath屬性
原Visual Basic 6 中App的PrevInstance屬性類似Visual Basic .NET 中的UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0表達式
原Visual Basic 6 中App的ProductName屬性類似Visual Basic .NET 中的System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly.Location).ProductName屬性
原Visual Basic 6 中App的RetainedProject屬性在Visual Basic .NET 中無類似屬性
原Visual Basic 6 中App的Revision屬性在Visual Basic .NET 中無類似屬性
原Visual Basic 6 中App的StartLogging方法在Visual Basic .NET 中無類似方法
原Visual Basic 6 中App的StartMode屬性在Visual Basic .NET 中無類似屬性
原Visual Basic 6 中App的TaskVisible屬性在Visual Basic .NET 中無類似屬性
原Visual Basic 6 中App的ThreadID屬性在Visual Basic .NET 中無類似屬性
原Visual Basic 6 中App的Title屬性類似Visual Basic .NET 中的System.Reflection.Assembly.GetExecutingAssembly.GetName.Name屬性
原Visual Basic 6 中App的UnattendedApp屬性在Visual Basic .NET 中無類似屬性
--------------------------------------------------------------------------------
3. 簡單示例
這里以得到當前應用的路徑為示例,首先要引用VisualBasic.Compatibility名稱空間,單擊主菜單"工程"中的"引用"項,并選擇"Microsoft Visual Basic .NET Compatibility Runtime"
此時在工程列表的引用中就會出現Microsoft.VisualBasic.Compatibility名稱空間了
在新的控制臺工程中輸入代碼
Imports Microsoft.VisualBasic.Compatibility
Module Module1 Sub Main() Console.WriteLine(VB6.GetPath) End Sub End Module
得到的結果仍然和使用VB6的App.path的結果是一樣的。
--------------------------------------------------------------------------------
4. 小結
VB6的程序員有了這些和App類似的屬性或方法,就可以很輕松的應用在.NET中了。
--------------------------------------------------------------------------------
作者:孟慶臣
|