Функция AppActivate

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

Активирует приложение, которое уже выполняется.

Public Overloads Sub AppActivate( _
      ByVal { Title As String | ProcessId As Integer } _
)

Параметры

  • Title
    Выражение типа String, задающее заголовок для активируемого окна приложения. Можно использовать название, присваиваемое приложению при запуске.

  • ProcessId
    Значение типа Integer, задающее номер назначенного процессу идентификатора процесса Win32. Можно использовать идентификатор возвращаемый Функция Shell, если он не равен нулю.

Исключения

Тип исключения

Номер ошибки

Условия

ArgumentException

5

Title или ProcessId не найден.

См. столбец "Номер ошибки", если выполняется обновление приложений Visual Basic 6.0, в которых используется неструктурированная обработка ошибок. (Можно сравнить номер ошибки с Свойство Number (объект Err).) Однако по возможности следует заменять такую систему управления ошибками на Обзор структурной обработки исключений в Visual Basic.

Заметки

Функция AppActivate используется для переноса фокуса в активное окно приложения. Возможно, не определены дескриптор или ссылка на активное окно или неизвестно, какое окно активно в данный момент. В таком случае нельзя использовать метод Focus.

Функция AppActivate передает фокус заданному приложению или окну независимо от того, свернуто оно или развернуто. При потере активным окном фокуса или в случае его закрытия фокус перемещается в другое окно. Для запуска приложения и задания стиля окна используйте функцию Shell.

При использовании параметра Title функция AppActivate использует сравнение, не учитывающее регистр. Однако в других случаях требуется точное совпадение с содержимым области заголовка. Сначала просматривается окно верхнего уровня, а затем всего его дочерние окна. Если соответствие не удается найти, вызывается исключение ArgumentException.

Функцию AppActivate можно использовать лишь с процессами, владеющими окнами. Большинство консольных приложений не владеет окнами, следовательно, они отсутствуют в списке процессов, в которых выполняется поиск с помощью функции AppActivate. Чтобы выполнить консольное приложение, система создает отдельный процесс и возвращает результат консольному процессу. Следовательно, при запросе идентификатора текущего процесса возвращается идентификатор процесса, а не консольного приложения.

Во время выполнения функция AppActivate активирует любое запущенное приложение с заголовком, соответствующим Title, или идентификатором процесса, соответствующим ProcessId. Если точное соответствие не обнаружено, функция активирует приложение, заголовок которого заканчивается строкой Title. Если несколько приложений имеют заголовок Title, функция AppActivate произвольно выбирает одно из них для активации.

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

Функция AppActivate требует разрешения UIPermission на уровне SafeTopLevelWindows, что может повлиять на ее выполнение в случаях частичного доверия. Дополнительные сведения см. в разделах Запрос разрешений и Класс UIPermission.

Пример

В данном примере показаны различные способы использования функции AppActivate для активации окна приложения. Если программа "Блокнот" не запущена, в примере будет создано исключение ArgumentException. При выполнении процедуры Shell предполагается, что указанные пути соответствуют фактическим путям к приложениям.

Dim notepadID As Integer
' Activate a running Notepad process.
AppActivate("Untitled - Notepad") 
' AppActivate can also use the return value of the Shell function.
' Shell runs a new instance of Notepad.
notepadID = Shell("C:\WINNT\NOTEPAD.EXE", AppWinStyle.NormalFocus)
' Activate the new instance of Notepad.  
AppActivate(notepadID)

Примечания для разработчиков приложений для интеллектуальных устройств

Данная функция не поддерживается.

Требования

Пространство имен: Microsoft.VisualBasic

**Модуль:**Interaction

**Сборка:**Visual Basic (библиотека времени выполнения, в Microsoft.VisualBasic.dll)

См. также

Ссылки

Функция Shell

Focus

ArgumentException