introduccion a la clase process

4
INTRODUCCION A LA CLASE PROCESS Cada aplicación NET FRAMEWORK ejecuta como un proceso. Los procesadores de computador ejecutan hilos, no procesos. El hilo principal de ejecución es el hilo primario y un proceso puede tener múltiples y adicionales hilos. Nombre Descripción ExitCode Obtiene el valor especificado por el proceso asociado al terminar. ExitTime Obtiene el momento en el que terminó el proceso asociado. Id Obtiene el identificador único del proceso asociado. MachineName Obtiene el nombre del equipo en el que se está ejecutando el proceso asociado. Modules Obtiene los módulos cargados por el proceso asociado. PriorityClass Obtiene o establece la categoría de prioridad general del proceso asociado. ProcessName Obtiene el nombre del proceso. StartTime Obtiene el momento en el que se inició el proceso asociado. Threads Obtiene el conjunto de subprocesos que se están ejecutando en el proceso asociado. TotalProcessorT ime Obtiene el tiempo de procesador total de este proceso. UserProcessorTi me Obtiene el tiempo de procesador de usuario de este proceso. VirtualMemorySi ze Obtiene el tamaño de la memoria virtual del proceso. VirtualMemorySi ze64 Obtiene el tamaño de la memoria virtual que se ha asignado para el proceso asociado. Nombre Descripción Close Libera todos los recursos asociados a este componente. CloseMainWindow Cierra un proceso que contiene una interfaz de usuario mediante el envío de un mensaje de cierre a su ventana principal. GetCurrentProces s Obtiene un nuevo componente Process y lo asocia al proceso que está activo en ese momento.

Upload: martin-sanchez-falcon

Post on 02-Jul-2015

65 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduccion a La Clase Process

INTRODUCCION A LA CLASE PROCESS

Cada aplicación NET FRAMEWORK ejecuta como un proceso. Los procesadores de computador ejecutan hilos, no procesos. El hilo principal de ejecución es el hilo primario y un proceso puede tener múltiples y

adicionales hilos.

Nombre Descripción

ExitCode Obtiene el valor especificado por el proceso asociado al terminar.

ExitTime Obtiene el momento en el que terminó el proceso asociado.

Id Obtiene el identificador único del proceso asociado.

MachineName Obtiene el nombre del equipo en el que se está ejecutando el proceso asociado.

Modules Obtiene los módulos cargados por el proceso asociado.

PriorityClass Obtiene o establece la categoría de prioridad general del proceso asociado.

ProcessName Obtiene el nombre del proceso.

StartTime Obtiene el momento en el que se inició el proceso asociado.

Threads Obtiene el conjunto de subprocesos que se están ejecutando en el proceso asociado.

TotalProcessorTime Obtiene el tiempo de procesador total de este proceso.

UserProcessorTime Obtiene el tiempo de procesador de usuario de este proceso.

VirtualMemorySize Obtiene el tamaño de la memoria virtual del proceso.

VirtualMemorySize64

Obtiene el tamaño de la memoria virtual que se ha asignado para el proceso asociado.

Nombre Descripción

Close Libera todos los recursos asociados a este componente.

CloseMainWindow Cierra un proceso que contiene una interfaz de usuario mediante el envío de un mensaje de cierre a su ventana principal.

GetCurrentProcess Obtiene un nuevo componente Process y lo asocia al proceso que está activo en ese momento.

GetProcessById Sobrecargado. Crea un nuevo componente Process y lo asocia al recurso de proceso existente que se especifique.

GetProcesses Sobrecargado. Crea una matriz de nuevos componentes Process y los asocia a recursos de proceso existentes.

GetProcessesByName

Sobrecargado. Crea una matriz de nuevos componentes Process y los asocia a los recursos de proceso existentes que comparten el nombre del proceso especificado.

Page 2: Introduccion a La Clase Process

Kill Detiene inmediatamente el proceso asociado.

Refresh Descarta cualquier información acerca del proceso asociado que se haya almacenado en caché en el componente del proceso.

Start Sobrecargado. Inicia un recurso de proceso y lo asocia a un componente Process.

RECIBIENDO INFORMACION DE LOS PROCESOS

El método GetProcesses, devuelve los nombres de los procesos actuales.

Dim processesList As Process() = Process.GetProcesses()For Each p As Process In processesListprocessesListBox.Items.Add(p.ProcessName)Next

Recibiendo información del proceso actual

El método GetCurrentProcess, obtiene un nuevo componente Process y lo asocia al proceso que está activo en ese momento. Se utiliza la propiedad ProcessName y Threads para mostrar información acerca del proceso.

Dim currentProcess As Process = Process.GetCurrentProcess()currentProcessLabel.Text = currentProcess.ProcessName

RECIBIENDO INFORMACION DEL MODULO

- Se pueden utilizar las propiedades MODULES para recibir información acerca de las DLLs o EXE que están siendo cargadas en un proceso.

Las Propiedades Modules- Representan a las EXEs o DLLs que intervienen en una aplicación.- Permiten obtener información acerca de los modulos cargados en un proceso, como

las que se obtienen con las propiedades FILENAME y FILEVERSIONINFO, asi como también el nombre del modulo, nombre del archivo y tamaño.

Dim currentProcess As Process = Process.GetCurrentProcess()Dim processModuleCollection As ProcessModuleCollection _= currentProcess.ModulesFor Each p As ProcessModule In processModuleCollectionprocessesListBox.Items.Add(p.FileName)NextmainModuleLabel.Text = currentProcess.MainModule.ModuleName

INICIANDO Y DETENIENDO UN PROCESO

La Clase PROCESS provee el método START que permite iniciar un proceso, y de la misma manera habilita los métodos CLOSEMAINWINDOW y KILL para detenerlo.

Nombre Descripción

Process.Start () Inicia (o reutiliza) el recurso de proceso especificado en la propiedad StartInfo de este componente Process y lo asocia al componente.Compatible con .NET Compact Framework.

Process.Start Inicia el recurso de proceso que se especifica mediante el

Page 3: Introduccion a La Clase Process

(ProcessStartInfo) parámetro que contiene la información de inicio del proceso (por ejemplo, el nombre de archivo del proceso que se va a iniciar) y asocia el recurso a un nuevo componente Process.Compatible con .NET Compact Framework.

Process.Start (String) Inicia un recurso de proceso con la especificación del nombre de un documento o de un archivo de aplicación y asocia el recurso a un nuevo componente Process.

Process.Start (String, String)

Inicia un recurso de proceso mediante la especificación del nombre de una aplicación y un conjunto de argumentos de línea de comandos, y asocia el recurso a un nuevo componente Process.Compatible con .NET Compact Framework.

Process.Start (String, String, SecureString, String)

Inicia un recurso de proceso mediante la especificación del nombre de una aplicación, un nombre de usuario, una contraseña y un dominio, y asocia el recurso a un nuevo componente de Process.

Process.Start (String, String, String, SecureString, String)

Inicia un recurso de proceso mediante la especificación del nombre de una aplicación y un conjunto de argumentos de línea de comandos, un nombre de usuario, una contraseña y un dominio, y asocia el recurso a un nuevo componente de Process.

Process.Start("calc")Process.Start("E:\MyFile.doc")

Dim info As New ProcessStartInfo("notepad")info.WindowStyle = ProcessWindowStyle.Normalinfo.Arguments = "C:\Files\TextFile.txt"Process.Start(info)

Deteniendo un proceso

CloseMainWindowCierra un proceso que contiene una interfaz de usuario mediante el envío de un mensaje de cierre a su ventana principal.

KillDetiene inmediatamente el proceso asociado. Lo fuerza.

Kill obliga a que el proceso termine, mientras que CloseMainWindow sólo solicita la terminación. Cuando se está ejecutando un proceso con interfaz gráfica, el bucle de mensajes se encuentra en estado de espera. El bucle de mensajes se ejecuta cada vez que el sistema operativo envía un mensaje de Windows al proceso. Cuando se llama a CloseMainWindow, se envía una solicitud para cerrar a la ventana principal que, en una aplicación con formato correcto, cierra las ventanas secundarias y revoca todos los bucles de mensajes en ejecución de la aplicación. Una solicitud de cierre del proceso mediante una llamada a CloseMainWindow no obliga a la aplicación a cerrarse. La aplicación puede pedir la confirmación del usuario antes de finalizar, o evitar su finalización. Para hacer que la aplicación se cierre, hay que utilizar el método Kill. El comportamiento de CloseMainWindow es igual al que se observa cuando el usuario cierra la ventana principal de una aplicación a través del menú del sistema. Por tanto, el hecho de solicitar la salida del proceso cerrando la ventana principal no obliga a la aplicación a salir inmediatamente.

El método Kill se ejecuta de forma asincrónica. Después de llamar al método Kill, llame

al método WaitForExit para esperar a que el proceso termine o compruebe la propiedad

HasExited para determinar si ha finalizado el proceso.

Page 4: Introduccion a La Clase Process

LECCION 2: ADMINISTRANDO LA PERFORMANCE DE UNA APLICACION