AppActivate (Función)

Actualización: noviembre 2007

Activa una aplicación que ya se está ejecutando.

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

Parámetros

  • Title
    Expresión String que especifica el título que aparecerá en la barra de título de la aplicación que se desea activar. Puede utilizar el título que se asignó a la aplicación cuando se ésta se inició.

  • ProcessId
    Valor Integer que especifica el número del identificador de proceso Win32 asignado a este proceso. Puede utilizar el Id. devuelto por la Shell (Función), siempre que no sea cero.

Excepciones

Tipo de excepción

Número de error

Condición

ArgumentException

5

No se puede encontrar el valor de Title o el de ProcessId.

Consulte la columna "Número de error" si está actualizando aplicaciones de Visual Basic 6.0 que utilizan el control de errores no estructurado. (Se puede comparar el número de error con respecto a Number (Propiedad, objeto Err)). Sin embargo, siempre que sea posible, se debe considerar la sustitución de dicho control de errores por Información general sobre el control estructurado de excepciones de Visual Basic.

Comentarios

Para colocar el foco en la ventana activa de una aplicación se utiliza AppActivate. Podría no tener un identificador o una referencia a la ventana activa, o incluso no saber qué ventana está activa en un momento determinado. En ese caso, no se puede utilizar el método Focus.

La función AppActivate cambia el foco a la aplicación o ventana que tiene ese nombre, independientemente de que esté maximizada o minimizada. El foco se quita de la ventana de aplicación activada cuando el usuario ejecuta alguna acción para cambiar el foco o cerrar la ventana. La función Shell se puede usar para iniciar una aplicación y establecer el estilo de la ventana.

Si utiliza el parámetro Title, AppActivate utiliza una comparación sin distinción entre mayúsculas y minúsculas pero, por otro lado, requiere una coincidencia exacta con el contenido de la barra de título. Primero pasa por las ventanas de nivel superior y, a continuación, por las ventanas secundarias. Si no se encuentra ninguna coincidencia, inicia una ArgumentException.

Utilice AppActivate sólo con procesos que son propietarios de ventanas La mayor parte de las aplicaciones de consola no son propietarias de ventanas, lo que significa que no aparecen en la lista de procesos que AppActivate busca. Al ejecutarse desde una aplicación de consola, el sistema crea un proceso independiente para ejecutar la aplicación y devuelve el resultado al proceso de consola. Por consiguiente, cuando se solicita el Id. de proceso actual, se obtiene el Id. de proceso de este proceso independiente, en lugar del Id. de proceso de la aplicación de consola.

En tiempo de ejecución, la función AppActivate activa cualquier aplicación que esté en ejecución y su título sea igual al valor de Title o tenga Id. de proceso igual al valor de ProcessId. Si no se da una correspondencia exacta, se activará cualquier aplicación cuya cadena de título termine por Title. En caso de que haya más de una aplicación cuyo nombre sea el valor de Title, la función AppActivate elige aleatoriamente cuál de ellas activar.

Nota:

La función AppActivate requiere un permiso UIPermission del nivel SafeTopLevelWindows que podría afectar a su ejecución en situaciones de confianza parcial. Para obtener más información, vea Solicitar permisos y UIPermission (Clase).

Ejemplo

En este ejemplo se muestran los distintos usos de la función AppActivate para activar una ventana de aplicación. Si no se está ejecutando un proceso del Bloc de notas, el ejemplo produce una ArgumentException. En el procedimiento Shell se supone que las aplicaciones se encuentran en las rutas de acceso especificadas.

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)

Notas para desarrolladores de dispositivos inteligentes

Esta función no es compatible.

Requisitos

Espacio de nombres:Microsoft.VisualBasic

**Módulo:**Interaction

**Ensamblado:**Visual Basic Runtime Library (en Microsoft.VisualBasic.dll)

Vea también

Referencia

Shell (Función)

Focus

ArgumentException