Developer's Diary

16 junio, 2013

API OpenProcess

Filed under: .net, API, ASP.Net, Curso C# — Etiquetas: , , , — jnavero @ 7:00 PM

Tengo pensado un post desde hace tiempo, pero, primero debo hacer varios explicando diferentes tipos de APIS que se utilizarán para dicho post.
En esta ocasión hablaré de OpenProcess.

API OpenProcess:
Esta api retorna el manejador (handle) de un proceso existente en el sistema.

Tipo de Función: Procesos e Hilos


HANDLE WINAPI OpenProcess(
_In_ DWORD dwDesiredAccess,
_In_ BOOL bInheritHandle,
_In_ DWORD dwProcessId
);

Parametros:
dwDesiredAccess: Indica el permiso de acceso del proceso, se compara con el descriptor de seguridad del proceso. Este parámetro puede tener uno o mas valores. Estos valores los podemos ver aquí.

bInheritHandle:Indica Si es true, el manejador devuelto podrá heredarse.

dwProcessId:Indica el identificador del proceso a abrir.

Retorna Si la función tiene éxito retorna el manejador del proceso especificado. Si no retorna null.

Ejemplo: En este ejemplo abro el primer proceso en modo lectura/escritura y podemos comprobar que retorna el handle del proceso. En otros post mostraré esto con mucha mas profundidad.


using System.Diagnostics;
using System.Runtime.InteropServices;

namespace Pruebas
{
public partial class Form1 : Form
{
[DllImport("kernel32.dll", SetLastError = true)]
public static extern IntPtr OpenProcess(
UInt32 dwDesiredAccess,
Int32 bInheritHandle,
UInt32 dwProcessId);

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
int PIDProceso = 0;
//Cojo el primer proceso de la lista (por ejemplo).
PIDProceso = Process.GetProcesses()[0].Id;

IntPtr hndProc = OpenProcess((0x10 | 0x20 ), //Abro el proceso en modo lectura y escritura
1,
(uint)PIDProceso); //Le paso el pid del proceso.
}
}
}

Este ejemplo lo pongo en C# de esta forma nos habituamos a los dos lenguajes (tanto C# como VB.NET).

Anuncios

Dejar un comentario »

Aún no hay comentarios.

RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: