AppActivate, fonction

Mise à jour : novembre 2007

Active une application qui est déjà en cours d'exécution.

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

Paramètres

  • Title
    Expression String qui spécifie le titre affiché dans la barre de titre de l'application que vous souhaite activer. Vous pouvez utiliser le titre assigné à l'application lors de son lancement.

  • ProcessId
    Integer qui spécifie le numéro d'identification de processus Win32 assigné à ce processus. Vous pouvez utiliser l'ID retourné par la Shell, fonction, à condition que sa valeur soit différente de zéro.

Exceptions

Type d'exception

Numéro de l'erreur

Condition

ArgumentException

5

Title ou ProcessId est introuvable.

Consultez la colonne « Numéro d'erreur » si vous mettez à niveau des applications Visual Basic 6.0 qui utilisent la gestion des erreurs non structurée. (Vous pouvez comparer le numéro d'erreur par rapport à Number, propriété (objet Err).) Toutefois, lorsque cela est possible, vous devez envisager de remplacer un tel contrôle d'erreur par Vue d'ensemble de la gestion structurée des exceptions pour Visual Basic.

Notes

Vous pouvez utiliser AppActivate pour donner le focus à la fenêtre active d'une application. Il se peut que vous ne possédiez pas de handle ou de référence à la fenêtre active, ou que vous ne sachiez pas quelle fenêtre est active à un moment donné. Dans ce cas, vous ne pouvez pas utiliser la méthode Focus.

La fonction AppActivate rend active l'application ou la fenêtre nommée, mais ne l'agrandit ni ne la réduit. Le focus quitte la fenêtre active de l'application lorsque l'utilisateur exécute une action visant à modifier le focus ou à fermer la fenêtre. Vous pouvez utiliser la fonction Shell pour démarrer une application et définir le style de la fenêtre.

Si vous employez le paramètre Title, AppActivate utilise une comparaison qui ne respecte pas la casse, mais exige néanmoins une correspondance exacte avec le contenu de la barre de titre. Il parcourt d'abord les fenêtres de niveau supérieur, puis les fenêtres enfants. S'il ne détecte aucune correspondance, il lève une exception ArgumentException.

Vous ne pouvez utiliser AppActivate qu'avec des processus contenant des fenêtres. La plupart des applications console ne possèdent pas de fenêtres, ce qui signifie qu'elles n'apparaissent pas dans la liste de processus que recherche AppActivate. Lors de l'exécution à partir d'une application console, le système crée un processus distinct pour exécuter l'application et retourne le résultat au processus console. Par conséquent, lorsque vous demandez l'ID de processus actuel, vous obtenez l'ID de processus de ce processus distinct, plutôt que celui de l'application console.

Au moment de l'exécution, la fonction AppActivate active toute application en cours possédant un titre qui correspond à Title ou un ID de processus qui correspond à ProcessId. S'il n'existe aucune correspondance exacte, elle active toute application dont la chaîne de titre se termine par Title. S'il existe plusieurs applications nommées Title, la fonction AppActivate en choisit arbitrairement une pour l'activer.

Remarque :

La fonction AppActivate nécessite UIPermission au niveau SafeTopLevelWindows, ce qui peut affecter son exécution dans les situations où le niveau de confiance n'est pas total. Pour plus d'informations, consultez Demande d'autorisations et UIPermission Class.

Exemple

Cet exemple montre comment utiliser la fonction AppActivate pour activer une fenêtre d'application. Si un processus Notepad n'est pas en cours d'exécution, l'exemple lève un ArgumentException. La procédure Shell suppose que les applications se trouvent dans les chemins d'accès spécifiés.

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)

Notes du développeur sur Smart Device

Cette fonction n'est pas prise en charge.

Configuration requise

Espace de noms :Microsoft.VisualBasic

**Module :**Interaction

**Assembly :**bibliothèque Visual Basic Runtime (dans Microsoft.VisualBasic.dll)

Voir aussi

Référence

Shell, fonction

Focus

ArgumentException