App 对象(针对 Visual Basic 6.0 用户)
更新: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 文件中,可在“代码编辑器”中进行编辑。 |
文件说明属性
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 用户)。
版本属性
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 服务或控制台应用程序。
PrevInstance 属性
Visual Basic 6.0 中的 PrevInstance 属性确定应用程序的实例是否在运行中。通常,在应用程序启动时调用 PrevInstance,如果它返回 true 则中止应用程序。
在 Visual Basic 2008 中没有 PrevInstance 的直接等效项。通过设置“项目设计器”的“应用程序”选项卡上的“多个实例”属性,可以控制应用程序是否允许多个实例。在运行时,如果用户尝试启动应用程序的另一个实例,则引发 NextInstanceStarted 事件。可以向此事件处理程序添加代码,以激活应用程序的第一个实例。
其他差异
在 Visual Basic 6.0 中有许多 App 对象属性,这些属性与现在已过时且在 Visual Basic 2008 中不再支持的 ActiveX 组件、OLE 自动化和其他技术有关。本主题后面部分的“App 对象属性等效项”表将介绍这些属性。
App 对象的代码更改
下面的代码示例演示 Visual Basic 6.0 和 Visual Basic 2008 的 App 对象的一些常规用法在编码方法上的不同之处。
显示应用程序版本号的代码更改
下面的示例演示如何检索应用程序版本号并显示在标签中。
' 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 文件相关的只读属性。公共语言运行库自动管理此行为。 |
||
OleRequestPendingMsgText OleRequestPendingMsgTitle OleRequestPendingTimeout OleServerBusyMsgText OleServerBusyMsgTitle OleServerBusyRaiseError OleServerBusyTimeout |
无等效项。这些属性与 OLE 自动化相关,而 Visual Basic 2008 不支持 OLE 自动化。 |
||
Path |
|||
PrevInstance |
|
||
ProductName |
|||
RetainedProject |
新的实现。Visual Basic 2008 不能在内存中保存项目。 |
||
Revision |
My.Application.Info.Version 属性
|
||
StartLogging method |
新的实现。有关更多信息,请参见 记录来自应用程序的信息。 |
||
StartMode |
无等效项。此属性涉及创建 ActiveX 组件,而 Visual Basic 2008 不支持创建 ActiveX 组件。 |
||
TaskVisible |
新的实现。若要创建不在“任务管理器”中显示的应用程序,请创建“Windows 服务”或“控制台应用程序”项目。 |
||
ThreadID |
新的实现。该属性返回正在执行的线程的 ID;而 Visual Basic 2008 中的线程模型有明显的不同。 |
||
Title |
|||
UnattendedApp |
新的实现。对于 Visual Basic 2008 中的无人参与应用程序,创建一个“控制台应用程序”项目。 |
升级说明
应用程序从 Visual Basic 6.0 升级后,只有 Major 和 Minor 属性获得升级;而 Visual Basic 2008 将向 Revision 和 Build 属性赋予新值。