le Début méthode du Processus L'objet est probablement l'un des outils les plus sous-estimés dont dispose un programmeur. Comme un .NET méthode, Début a une série de surcharges, qui sont différents ensembles de paramètres qui déterminent exactement ce que fait la méthode. Les surcharges vous permettent de spécifier à peu près n'importe quel ensemble de paramètres que vous voudrez peut-être passer à un autre processus au démarrage.
Que pouvez-vous faire avec Processus. Début n'est vraiment limité que par les processus que vous pouvez utiliser avec. Si vous souhaitez afficher votre fichier Lisez-moi basé sur du texte dans le Bloc-notes, c'est aussi simple que:
Processus. Démarrer ("ReadMe.txt")ou.
Processus. Démarrer ("bloc-notes", "ReadMe.txt")
Cet exemple suppose que le fichier Lisez-moi se trouve dans le même dossier que le programme et que le Bloc-notes est l'application par défaut pour les types de fichiers .txt et qu'il se trouve dans le chemin d'accès à l'environnement système.
Processus. Démarrage similaire à la commande Shell dans VB6
Pour les programmeurs familiarisés avec Visual Basic 6, Processus. Début est un peu comme le VB 6 coquille commander. Dans VB 6, vous utiliseriez quelque chose comme:
lngPID = Shell ("MyTextFile.txt", vbNormalFocus)
Utilisation du processus. Début
Vous pouvez utiliser ce code pour démarrer le Bloc-notes maximisé et créer un ProcessStartInfo objet que vous pouvez utiliser pour un contrôle plus précis:
Dim ProcessProperties en tant que nouveau ProcessStartInfo
ProcessProperties. FileName = "bloc-notes"
ProcessProperties. Arguments = "myTextFile.txt"
ProcessProperties. WindowStyle = ProcessWindowStyle. Maximisé
Dim myProcess As Process = Processus. Démarrer (ProcessProperties)
Démarrage d'un processus caché
Vous pouvez même démarrer un processus caché.
ProcessProperties. WindowStyle = ProcessWindowStyle. CachéMais fais attention. À moins que vous n'ajoutiez plus de code pour terminer le processus, vous devrez probablement le terminer dans le Gestionnaire des tâches. Les processus masqués ne sont normalement utilisés qu'avec des processus qui n'ont aucune sorte d'interface utilisateur.
Récupération du nom d'un processus
Travailler avec Processus. Début en tant qu'objet .NET vous donne beaucoup de capacités. Par exemple, vous pouvez récupérer le nom du processus qui a été démarré. Ce code affichera "bloc-notes" dans la fenêtre de sortie:
Dim myProcess As Process = Processus. Démarrez la console ("MyTextFile.txt"). WriteLine (myProcess. Nom du processus)C'était quelque chose que tu pouvais ne pas faire avec le VB6 coquille car elle a lancé la nouvelle application de manière asynchrone. En utilisant WaitForExit peut provoquer le problème inverse dans .NET car vous devez lancer un processus dans un nouveau thread si vous en avez besoin pour s'exécuter de manière asynchrone. Par exemple, si vous avez besoin que les composants restent actifs sous une forme où un processus a été lancé et WaitForExit a été exécuté. Normalement, ces composants ne seront pas actifs. Codez-le et voyez par vous-même.
Une façon de forcer le processus à s'arrêter est d'utiliser le Tuer méthode.
myProcess. Tuer()
Ce code attend dix secondes, puis termine le processus.
Cependant, un délai forcé est parfois nécessaire pour permettre au processus de se terminer pour éviter une erreur.
myProcess. WaitForExit (10000)
«si le processus ne se termine pas dans les
'10 secondes, tuez-le
Si ce n'est pas mon processus. HasExited Then
myProcess. Tuer()
Fin si
Enfiler. Fil. Sommeil (1)
Console. WriteLine ("Bloc-notes terminé:" _
& myProcess. ExitTime & _
Environnement. Nouvelle ligne & _
"Code de sortie:" & _
myProcess. ExitCode)
Dans la plupart des cas, c'est probablement une bonne idée de mettre votre traitement dans un En utilisant pour garantir que les ressources utilisées par le processus sont libérées.
Utilisation de myProcess en tant que processus = nouveau processus
«Votre code va ici
Fin de l'utilisation
Pour rendre tout cela encore plus facile à utiliser, il existe même un Processus composant que vous pouvez ajouter à votre projet afin que vous puissiez faire beaucoup des choses indiquées ci-dessus au moment de la conception au lieu de l'exécution.
L'une des choses que cela facilite beaucoup est le codage des événements déclenchés par le processus, tels que l'événement à la fin du processus. Vous pouvez également ajouter un gestionnaire en utilisant un code comme celui-ci:
'permettre au processus de déclencher des événements
myProcess. EnableRaisingEvents = True
'ajouter un gestionnaire d'événements Exited
AddHandler myProcess. Quitté, _
Adresse de moi. ProcessExited
Sous-processus privéExited (expéditeur ByVal en tant qu'objet, _
ByVal e As System. EventArgs)
«Votre code va ici
End Sub
Mais simplement sélectionner l'événement pour le composant est beaucoup plus facile.