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

My.Application.Info.Description 属性

CompanyName

My.Application.Info.CompanyName 属性

EXEName

My.Application.Info.AssemblyName 属性

FileDescription

My.Application.Info.Title 属性

HelpFile

新的实现。使用 HelpProvider 组件。有关更多信息,请参见帮助支持(针对 Visual Basic 6.0 用户)

HInstance

GetHINSTANCE

LegalCopyright

My.Application.Info.Copyright 属性

LegalTrademarks

My.Application.Info.Trademark 属性

LogEvent method

WriteEntry 方法(My.Application.Log 和 My.Log)

LogMode

LogPath

新的实现。有关更多信息,请参见 记录来自应用程序的信息

Major

My.Application.Info.Version 属性

说明:

Visual Basic 2008 中版本号的格式有所不同。有关更多信息,请参见 版本编号(针对 Visual Basic 6.0 用户)

Minor

My.Application.Info.Version 属性

说明:

Visual Basic 2008 中版本号的格式有所不同。有关更多信息,请参见 版本编号(针对 Visual Basic 6.0 用户)

NonModalAllowed

新的实现。这是与 ActiveX .dll 文件相关的只读属性。公共语言运行库自动管理此行为。

OleRequestPendingMsgText

OleRequestPendingMsgTitle

OleRequestPendingTimeout

OleServerBusyMsgText

OleServerBusyMsgTitle

OleServerBusyRaiseError

OleServerBusyTimeout

无等效项。这些属性与 OLE 自动化相关,而 Visual Basic 2008 不支持 OLE 自动化。

Path

My.Application.Info.DirectoryPath 属性

PrevInstance

IsSingleInstance

说明:

IsSingleInstance 属性是一个 Protected 属性。该属性只能通过在设计时选中或清除“项目管理器”中的“多个实例”复选框进行设置。

ProductName

My.Application.Info.ProductName 属性

RetainedProject

新的实现。Visual Basic 2008 不能在内存中保存项目。

Revision

My.Application.Info.Version 属性

说明:

Visual Basic 2008 中版本号的格式有所不同。有关更多信息,请参见 版本编号(针对 Visual Basic 6.0 用户)

StartLogging method

新的实现。有关更多信息,请参见 记录来自应用程序的信息

StartMode

无等效项。此属性涉及创建 ActiveX 组件,而 Visual Basic 2008 不支持创建 ActiveX 组件。

TaskVisible

新的实现。若要创建不在“任务管理器”中显示的应用程序,请创建“Windows 服务”或“控制台应用程序”项目。

ThreadID

新的实现。该属性返回正在执行的线程的 ID;而 Visual Basic 2008 中的线程模型有明显的不同。

Title

My.Application.Info.Title 属性

UnattendedApp

新的实现。对于 Visual Basic 2008 中的无人参与应用程序,创建一个“控制台应用程序”项目。

升级说明

应用程序从 Visual Basic 6.0 升级后,只有 Major 和 Minor 属性获得升级;而 Visual Basic 2008 将向 RevisionBuild 属性赋予新值。

请参见

概念

帮助支持(针对 Visual Basic 6.0 用户)

版本编号(针对 Visual Basic 6.0 用户)

参考

My.Application 对象