摘要
使用过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中了。