Объект App для пользователей Visual Basic 6.0

Обновлен: Ноябрь 2007

В этом разделе сравнивается объект Visual Basic 6.0 App с его эквивалентом в Visual Basic 2008.

В Visual Basic 6.0 объект App является глобальным объектом, используемым для задания или извлечения сведений о приложении. Прямой эквивалент для App в Visual Basic 2008 отсутствует. Однако большинство свойств, методов и событий могут быть сопоставлены с эквивалентными членами .NET Framework.

Концептуальные различия

Свойства сведений о версии

Свойства Version Information объекта App в Visual Basic 2008 заменены на атрибуты Assembly. Свойства Version Information задаются в диалоговом окне Свойства проекта. Атрибуты Assembly задаются в диалоговом окне Сведения о сборке, которое можно открыть, нажав кнопку Сведения о приложении на вкладке ПриложениеКонструктора проектов.

fc353bw2.alert_note(ru-ru,VS.90).gifПримечание.

Свойства Version Information хранятся в файле проекта (с расширением VBP), который может быть отредактирован с помощью текстового редактора, такого как "Блокнот". Атрибуты Assembly хранятся в файле AssemblyInfo.vb и могут редактироваться с помощью Редактора кода.

Свойство описания файла

Объект Visual Basic 6.0 App имеет как свойство FileDescription, так и свойство Title. Свойство FileDescription определяет текст описания в Проводнике Windows.

В Visual Basic 2008 атрибут FileDescription отсутствует. Вместо него используется атрибут Title, определяющий текст описания, отображаемый в Проводнике Windows.

Свойство HelpFile

Свойство HelpFile в Visual Basic 6.0 определяет файл справки на уровне приложения.

В 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

Свойство Title объекта App в Visual Basic 6.0 может изменяться программным способом. Таким образом задается имя, которое будет отображаться в Диспетчере задач Windows.

В Visual Basic 2008 атрибут Title доступен только для чтения. Свойство Text главной формы приложения определяет имя, отображаемое в Диспетчере задач. Свойство Text можно установить программным путем, однако при этом также будет изменяться текст в заголовке окна формы.

Свойство TaskVisible

В Visual Basic 6.0 свойство TaskVisible объекта App определяет, должно ли отображаться приложение в списке задач Windows (Windows 9x) или на вкладке "Приложения" Диспетчера задач (Windows 2000 и более поздние версии). Это свойство обычно применяется для того, чтобы пользователь не закрыл приложение, предназначенное для запуска в качестве фоновой задачи. В большинстве случаев свойство TaskVisible используется в приложениях без пользовательского интерфейса.

В Visual Basic 2008 нет свойства, эквивалентного свойству TaskVisible, однако можно создать службу Windows или консольное приложение, не отображаемое в списке задач.

Свойство PrevInstance

Свойство PrevInstance в Visual Basic 6.0 используется для определения того, запущен ли экземпляр приложения. Обычно обращение к свойству PrevInstance происходит при запуске приложения, который прерывается, если свойство возвращает значение true.

Прямой эквивалент свойства PrevInstance в Visual Basic 2008 отсутствует. Разрешение или запрет на запуск нескольких экземпляров приложения определяется свойством Множественные экземпляры на вкладке ПриложениеКонструктора проектов. Во время выполнения событие NextInstanceStarted возникает при попытке пользователем запустить еще один экземпляр приложения. В обработчик этого события можно добавить код для активации первого экземпляра приложения.

Дополнительные различия

В Visual Basic 6.0 имеется ряд свойств объекта App, относящихся к компонентам ActiveX, OLE-автоматизации и другим технологиям, являющимся на данный момент устаревшими и не поддерживаемыми в Visual Basic 2008. Они указаны в таблице "Эквиваленты свойств объекта 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

В следующей таблице приведен список всех свойств и методов объекта App Visual Basic 6.0, а также их эквивалентов для 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

fc353bw2.alert_note(ru-ru,VS.90).gifПримечание.
Формат номера версии в Visual Basic 2008 отличается. Дополнительные сведения см. в разделе Нумерация версий для пользователей Visual Basic 6.0.

Minor

Свойство My.Application.Info.Version

fc353bw2.alert_note(ru-ru,VS.90).gifПримечание.
Формат номера версии в Visual Basic 2008 отличается. Дополнительные сведения см. в разделе Нумерация версий для пользователей Visual Basic 6.0.

NonModalAllowed

Новая реализация. Это свойство только для чтения, относящееся к DLL-файлам ActiveX. Среда CLR автоматически управляет таким поведением.

OleRequestPendingMsgText

OleRequestPendingMsgTitle

OleRequestPendingTimeout

OleServerBusyMsgText

OleServerBusyMsgTitle

OleServerBusyRaiseError

OleServerBusyTimeout

Эквивалента нет. Эти свойства относятся к OLE-автоматизации, которая не поддерживается в Visual Basic 2008.

Path

Свойство My.Application.Info.DirectoryPath

PrevInstance

IsSingleInstance

fc353bw2.alert_note(ru-ru,VS.90).gifПримечание.
Свойство IsSingleInstance является свойством Protected. Оно может быть установлено только на этапе разработки в Конструкторе проектов путем установки или снятия флажка Множественные экземпляры.

ProductName

Свойство My.Application.Info.ProductName

RetainedProject

Новая реализация. Visual Basic 2008 не может сохранять проект в памяти.

Revision

Свойство My.Application.Info.Version

fc353bw2.alert_note(ru-ru,VS.90).gifПримечание.
Формат номера версии в Visual Basic 2008 отличается. Дополнительные сведения см. в разделе Нумерация версий для пользователей Visual Basic 6.0.

StartLogging method

Новая реализация. Дополнительные сведения см. в разделе Запись сведений в журнал из приложения.

StartMode

Эквивалента нет. Данное свойство относится к созданию компонентов ActiveX, не поддерживаемому в Visual Basic 2008.

TaskVisible

Новая реализация. Чтобы создать приложение, не отображаемое в Диспетчере задач, необходимо создать проект Служба Windows или Консольное приложение.

ThreadID

Новая реализация. Это свойство возвращало идентификатор исполняемого потока. В Visual Basic 2008 потоковая модель имеет значительные отличия.

Title

Свойство My.Application.Info.Title

UnattendedApp

Новая реализация. Для автоматически запускаемых приложений в Visual Basic 2008 следует создать проект Консольного приложения.

Замечания по обновлению

При обновлении приложения с версии Visual Basic 6.0 обновляются только свойства Major и Minor; свойствам Revision и Build в Visual Basic 2008 присваиваются новые значения.

См. также

Основные понятия

Поддержка справки (для пользователей Visual Basic 6.0)

Нумерация версий для пользователей Visual Basic 6.0

Ссылки

Объект My.Application