Saturday, 18 February 2017

Vb Waitforexit

Comment utiliser Process. Start dans Visual Basic Par Dan Mabbutt. Visual Basic Expert La méthode Start de l'objet Process est peut être l'un des outils les plus sous estimés à votre disposition en tant que programmeur. En tant que méthode, Start a une série de surcharges (différents ensembles de paramètres qui déterminent exactement ce que fait la méthode). Dans ce cas, les surcharges vous permettent de spécifier n'importe quel ensemble de paramètres que vous pouvez passer à un autre processus quand il démarre. Ce que vous pouvez faire avec Process. Start n'est vraiment limité que par les processus que vous pouvez utiliser avec elle. Continuer à lire ci dessous Qui est à dire, il n'y a aucune limite puisque plus continuer à venir tout le temps. Si vous souhaitez afficher votre fichier texte 34ReadMe34 dans le Bloc notes, il est aussi simple que: Ceci suppose que le fichier ReadMe se trouve dans le même dossier que le programme et que Notepad est l'application par défaut pour les types de fichiers. txt et it39s dans l'environnement système chemin. Pour les VB639ers dans le public, Process. Start ressemble un peu à la commande VB6 Shell. Dans VB6, vous pouvez utiliser quelque chose comme: lngPID 61 Shell (34MyTextFile. txt34, vbNormalFocus) Vous pouvez toujours appeler la commande Shell dans VB, mais je wouldn39t le recommander. Utilisez Process. Start à la place. Vous pouvez utiliser ce code à la place pour démarrer le bloc notes maximisé et créer un objet ProcessStartInfo que vous pouvez utiliser pour un contrôle plus précis: Dim ProcessProperties As New ProcessStartInfo ProcessProperties. FileName 64 34notepad34 ProcessProperties. Arguments 61 34myTextFile. txt34 ProcessProperties. WindowStyle 61 ProcessWindowStyle. Maximized Dim myProcess Process ProcessStart (ProcessProperties) Continuer la lecture ci dessous Vous pouvez même démarrer un processus masqué. ProcessProperties. WindowStyle 61 ProcessWindowStyle. Hidden Mais soyez prudent. Sauf si vous ajoutez plus de code pour terminer le processus, vous devrez probablement le terminer dans le Gestionnaire des tâches. Les processus cachés ne sont normalement utilisés qu'avec des processus qui ne possèdent aucune interface utilisateur. Travailler avec Process. Start comme un objet 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 34notepad34 dans la fenêtre Sortie: Dim myProcess As Process 61 Process. Start (34MyTextFile. txt34) Console. WriteLine (myProcess. ProcessName) Si vous devez suspendre l'exécution de votre programme jusqu'à ce que le processus soit terminé (quelque chose que vous pourriez faire Avec le code API dans VB6), voilà. Console. WriteLine (34Notepad terminé: 34 amp myProcess. ExitTime amp Environment. NewLine amp 34Exit Code: 34 amp myProcess. ExitCode) Cela était quelque chose que vous ne pouviez pas faire avec la commande VB6 Shell car il a lancé la nouvelle application de façon asynchrone. Utilisation de WaitForExit peut provoquer le problème inverse dans parce que vous devez lancer un processus dans un nouveau thread si vous avez besoin pour exécuter de façon asynchrone. Par exemple, si vous avez besoin que les composants restent actifs dans un formulaire où un processus a été lancé et WaitForExit a été exécuté. Habituellement, ces composants ne seront pas actifs. Code it up et de voir par vous même. Une façon de forcer le processus à arrêter est d'utiliser la méthode Kill. Ce code attend 10 secondes, puis termine le processus. J'ai constaté qu'un délai forcé était nécessaire pour permettre au processus de se terminer pour éviter une erreur. MyProcess. WaitForExit (10000) 39 si le processus ne se termine pas en 39 10 secondes, tuez le Si non myProcess. HasExited Puis myProcess. Kill () End If Threading. Thread. Sleep (1) Console. WriteLine (34Notepad terminé: 34 amp myProcess. ExitTime amp Environment. NewLine amp 34Exit Code: 34 amp myProcess. ExitCode) Dans la plupart des cas, il est probablement une bonne idée de mettre votre traitement dans un bloc d'utilisation pour s'assurer que les ressources utilisées par le processus sont libérées. Utilisation de myProcess As Process 61 Nouveau processus 39 Votre code est utilisé ici Fin Utilisation Pour rendre tout cela encore plus facile à utiliser, il ya même un composant Process que vous pouvez ajouter à votre projet afin que vous puissiez faire beaucoup de choses ci dessus à la conception Temps au lieu du temps d'exécution. Une des choses que cela rend beaucoup plus facile est de coder les événements soulevés par le processus, comme l'événement lorsque le processus a quitté. Vous pouvez également ajouter un gestionnaire en utilisant un code comme celui ci. 39 autoriser le processus à émettre des événements myProcess. EnableRaisingEvents 61 True 39 ajouter un gestionnaire d'événement Exited AddHandler myProcess. Exited, AddressOf Me. ProcessExited Private Sub ProcessExited (ByVal expéditeur comme objet, ByVal e comme System. EventArgs) 39 Votre code va ici End Sub Mais il suffit de sélectionner l'événement pour le composant est beaucoup plus facile. J'ai un problème avec cela et j'espère que certains d'entre vous pourrait jeter un peu de lumière sur elle pour moi Le bloc de code: Ive a changé l'URL, évidemment, mais ce n'est pas important. Lorsque j'essaie de l'exécuter, il me donne une exception sur la ligne quotWaitForExitquot indiquant le processus quotNo est associé à cet objet. quot Toute aide ici serait très appréciée mardi 19 octobre 2010 18h05 Process nom de fichier doit être fichier exécutable MBoardProcess. StartInfo. Arguments microsoftenusdefault. aspx mBoardProcess. StartInfo. FileName quotIEXPLORE. EXEquot CODE CONVERTER SITE Modifié par kaymaf mardi 19 octobre 2010 18h32 Marqué comme réponse par Frank L. Smith mardi 19 octobre 2010 18h35 Mardi 19 octobre , 2010 6:26 PM


No comments:

Post a Comment