OpenProcess (kernel32)
Last changed: Oara-80.215.74.132

.
Summary

C# Signature:

[DllImport("kernel32.dll")]
static extern IntPtr OpenProcess(ProcessAccessFlags dwDesiredAccess, [MarshalAs(UnmanagedType.Bool)] bool bInheritHandle, int dwProcessId);

VB.NET Signature:

<DllImport("kernel32.dll")> _
Private Shared Function OpenProcess(ByVal dwDesiredAccess As ProcessAccessFlags, <MarshalAs(UnmanagedType.Bool)> ByVal bInheritHandle As Boolean, ByVal dwProcessId As Integer) As IntPtr
End Function

Boo Signature:

[DllImport("kernel32")]
static def OpenProcess(dwDesiredAccess as ProcessAccess, bInheritHandle as bool, dwProcessId as int) as IntPtr:
     pass

User-Defined Types:

ProcessAccess

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code (VB.NET):

' Get the handle of a running process
Dim curProcess As Process = Process.GetCurrentProcess()
hProcess = OpenProcess(PROCESS_ACCESS.PROCESS_QUERY_INFORMATION, True, curProcess.Id)

Flags

    enum ProcessAccessFlags : uint
    {
        All = 0x001F0FFF,
        Terminate = 0x00000001,
        CreateThread = 0x00000002,
        VMOperation = 0x00000008,
        VMRead = 0x00000010,
        VMWrite = 0x00000020,
        DupHandle = 0x00000040,
        SetInformation = 0x00000200,
        QueryInformation = 0x00000400,
        Synchronize = 0x00100000
    }

Alternative Managed API:

Do you know one? Please contribute it!

Documentation
OpenProcess on MSDN