Exporter (0) Imprimer
Développer tout
1 sur 1 ont trouvé cela utile - Évaluez ce sujet

Process, classe

Mise à jour : novembre 2007

Fournit l'accès à des processus locaux ainsi que distants, et vous permet de démarrer et d'arrêter des processus système locaux.

Espace de noms :  System.Diagnostics
Assembly :  System (dans System.dll)

[HostProtectionAttribute(SecurityAction.LinkDemand, SharedState = true, Synchronization = true, 
	ExternalProcessMgmt = true, SelfAffectingProcessMgmt = true)]
[PermissionSetAttribute(SecurityAction.LinkDemand, Name = "FullTrust")]
[PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust")]
public class Process : Component
/** @attribute HostProtectionAttribute(SecurityAction.LinkDemand, SharedState = true, Synchronization = true, ExternalProcessMgmt = true, SelfAffectingProcessMgmt = true) */
/** @attribute PermissionSetAttribute(SecurityAction.LinkDemand, Name = "FullTrust") */
/** @attribute PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust") */
public class Process extends Component
public class Process extends Component
Remarque :

L'attribut HostProtectionAttribute appliqué à ce type ou membre a la valeur de propriété Resources suivante : SharedState | Synchronization | ExternalProcessMgmt | SelfAffectingProcessMgmt. HostProtectionAttribute n'affecte pas les applications bureautiques (qui sont généralement démarrées en double-cliquant sur une icône, en tapant une commande ou en entrant une URL dans un navigateur). Pour plus d'informations, consultez la classe HostProtectionAttribute ou Attributs de programmation et de protection des hôtes SQL Server.

Remarque :

En commençant par le .NET Framework version 2.0, la possibilité de référencer des données de compteur de performance sur d'autres ordinateurs a été supprimée de nombreuses méthodes et propriétés de .NET Framework. Cette modification a été apportée pour améliorer la performance et permettre à l'utilisateur non administrateur d'utiliser la classe Process. En conséquence, certaines applications qui ne levaient pas d'exceptions dans les versions antérieures de .NET Framework peuvent désormais lever une NotSupportedException. Les méthodes et propriétés affectées sont trop nombreuses pour être répertoriées ici, mais les informations sur les exceptions ont été ajoutées aux rubriques relatives aux membres affectés.

Un composant Process fournit l'accès à un processus en cours d'exécution sur un ordinateur. En termes simplifiés, un processus est une application en cours d'exécution. Un thread est l'unité de base à laquelle le système d'exploitation alloue du temps processeur. Un thread peut exécuter une partie du code du processus, notamment des parties actuellement exécutées par un autre thread.

Le composant Process est un outil utile pour démarrer, arrêter, contrôler et surveiller des applications. À l'aide du composant Process, vous pouvez obtenir la liste des processus qui s'exécutent ou vous pouvez démarrer un nouveau processus. Un composant Process est utilisé pour accéder aux processus système. Lorsqu'un composant Process a été initialisé, vous pouvez l'utiliser pour obtenir des informations sur le processus en cours d'exécution. Ces informations comprennent le jeu de threads, les modules chargés (fichiers .dll et .exe), ainsi que des informations sur les performances, telles que la quantité de mémoire utilisée par le processus.

Si une variable de chemin d'accès est déclarée dans votre système à l'aide de guillemets, vous devez qualifier complètement ce chemin d'accès lors du démarrage d'un processus trouvé à cet emplacement. Sinon, le système ne trouvera pas le chemin d'accès. Par exemple, si c:\mypath ne figure pas dans votre chemin et que vous l'ajoutiez en utilisant des guillemets, path = %path%;"c:\mypath", vous devez qualifier complètement tout processus dans c:\mypath lorsque vous le démarrez.

Le composant du processus obtient des informations simultanément sur toutes les propriétés d'un groupe. Lorsque le composant Process a obtenu des informations sur un membre d'un groupe, il met les valeurs en cache pour les autres propriétés de ce groupe et n'obtient pas de nouvelles informations concernant les autres membres du groupe jusqu'à ce que vous appeliez la méthode Refresh. Par conséquent, une valeur de propriété n'est pas nécessairement plus récente que le dernier appel à la méthode Refresh. Les répartitions des groupes dépendent du système d'exploitation.

Un processus système est identifié de manière unique sur le système par son identificateur. Comme de nombreuses ressources Windows, un processus est également identifié par son handle, qui peut ne pas être unique sur l'ordinateur. Un handle est le terme générique désignant un identificateur d'une ressource. Le système d'exploitation fait persister le handle du processus, accessible à l'aide de la propriété Handle du composant Process, même si vous avez quitté le processus. Par conséquent, vous pouvez obtenir des informations administratives sur le processus, telles que ExitCode (généralement zéro en cas de réussite ou un code d'erreur différent de zéro) et ExitTime. Les handles constituent une ressource extrêmement précieuse. Le manque de handles est donc plus pénalisant que le manque de mémoire.

Remarque :

Cette classe contient une demande de liaison et une demande d'héritage au niveau de la classe qui s'applique à tous les membres. Une exception SecurityException est levée lorsque l'appelant immédiat ou la classe dérivée ne dispose pas d'une autorisation avec un niveau de confiance total. Pour plus d'informations sur les demandes de sécurité, consultez Demandes de liaison et Demandes d'héritage.

L'exemple suivant utilise une instance de la classe Process pour démarrer un processus.

using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
	/// <summary>
	/// Shell for the sample.
	/// </summary>
	class MyProcess
	{
		// These are the Win32 error code for file not found or access denied.
		const int ERROR_FILE_NOT_FOUND =2;
		const int ERROR_ACCESS_DENIED = 5;

		/// <summary>
		/// Prints a file with a .doc extension.
		/// </summary>
		void PrintDoc()
		{
			Process myProcess = new Process();
			
			try
			{
				// Get the path that stores user documents.
				string myDocumentsPath = 
					Environment.GetFolderPath(Environment.SpecialFolder.Personal);

				myProcess.StartInfo.FileName = myDocumentsPath + "\\MyFile.doc"; 
				myProcess.StartInfo.Verb = "Print";
				myProcess.StartInfo.CreateNoWindow = true;
				myProcess.Start();
			}
			catch (Win32Exception e)
			{
				if(e.NativeErrorCode == ERROR_FILE_NOT_FOUND)
				{
					Console.WriteLine(e.Message + ". Check the path.");
				} 

				else if (e.NativeErrorCode == ERROR_ACCESS_DENIED)
				{
					// Note that if your word processor might generate exceptions
					// such as this, which are handled first.
					Console.WriteLine(e.Message + 
						". You do not have permission to print this file.");
				}
			}
		}


		public static void Main()
		{
			MyProcess myProcess = new MyProcess();
			myProcess.PrintDoc();
		}
	}
}


L'exemple suivant utilise la classe Process elle-même et une méthode Start statique pour démarrer un processus.

using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
	/// <summary>
	/// Shell for the sample.
	/// </summary>
	class MyProcess
	{
	   
		/// <summary>
		/// Opens the Internet Explorer application.
		/// </summary>
		void OpenApplication(string myFavoritesPath)
		{
			// Start Internet Explorer. Defaults to the home page.
			Process.Start("IExplore.exe");
				    
		    // Display the contents of the favorites folder in the browser.
		    Process.Start(myFavoritesPath);

		}
		
		/// <summary>
		/// Opens urls and .html documents using Internet Explorer.
		/// </summary>
		void OpenWithArguments()
		{
			// url's are not considered documents. They can only be opened
			// by passing them as arguments.
			Process.Start("IExplore.exe", "www.northwindtraders.com");
			
			// Start a Web page using a browser associated with .html and .asp files.
			Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
			Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
		}
		
		/// <summary>
		/// Uses the ProcessStartInfo class to start new processes, both in a minimized 
		/// mode.
		/// </summary>
		void OpenWithStartInfo()
		{
			
			ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
			startInfo.WindowStyle = ProcessWindowStyle.Minimized;
			
			Process.Start(startInfo);
			
			startInfo.Arguments = "www.northwindtraders.com";
			
			Process.Start(startInfo);
			
		}

		static void Main()
		{
            		// Get the path that stores favorite links.
            		string myFavoritesPath = 
                	Environment.GetFolderPath(Environment.SpecialFolder.Favorites);

            		MyProcess myProcess = new MyProcess();

			myProcess.OpenApplication(myFavoritesPath);
			myProcess.OpenWithArguments();
			myProcess.OpenWithStartInfo();

       		}	
	}
}


  • LinkDemand 

    pour une confiance totale accordée à l'appelant immédiat. Cette classe ne peut pas être utilisée par du code d'un niveau de confiance partiel.

  • InheritanceDemand 

    pour une confiance totale accordée aux héritiers. Cette classe ne peut pas être héritée par du code d'un niveau de confiance partiel.

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile pour Smartphone, Windows Mobile pour Pocket PC

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Pris en charge dans : 3.5, 2.0
Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft. Tous droits réservés.