怎样通过ProcessID获得Process的Handle

解决方案 »

  1.   

    HANDLE OpenProcess(
      DWORD dwDesiredAccess,  // access flag
      BOOL bInheritHandle,    // handle inheritance option
      DWORD dwProcessId       // process identifier
    );
      

  2.   

    OpenProcess
    The OpenProcess function opens an existing process object. HANDLE OpenProcess(
      DWORD dwDesiredAccess,  // access flag
      BOOL bInheritHandle,    // handle inheritance option
      DWORD dwProcessId       // process identifier
    );
    Parameters
    dwDesiredAccess 
    [in] Specifies the access to the process object. For operating systems that support security checking, this access is checked against any security descriptor for the target process. This parameter can be STANDARD_RIGHTS_REQUIRED or one or more of the following values. Value Description 
    PROCESS_ALL_ACCESS Specifies all possible access flags for the process object. 
    PROCESS_CREATE_PROCESS Used internally. 
    PROCESS_CREATE_THREAD Enables using the process handle in the CreateRemoteThread function to create a thread in the process. 
    PROCESS_DUP_HANDLE Enables using the process handle as either the source or target process in the DuplicateHandle function to duplicate a handle. 
    PROCESS_QUERY_INFORMATION Enables using the process handle in the GetExitCodeProcess and GetPriorityClass functions to read information from the process object. 
    PROCESS_SET_QUOTA Enables using the process handle in the AssignProcessToJobObject and SetProcessWorkingSetSize functions to set memory limits.  
    PROCESS_SET_INFORMATION Enables using the process handle in the SetPriorityClass function to set the priority class of the process. 
    PROCESS_TERMINATE Enables using the process handle in the TerminateProcess function to terminate the process. 
    PROCESS_VM_OPERATION Enables using the process handle in the VirtualProtectEx and WriteProcessMemory functions to modify the virtual memory of the process. 
    PROCESS_VM_READ Enables using the process handle in the ReadProcessMemory function to read from the virtual memory of the process. 
    PROCESS_VM_WRITE Enables using the process handle in the WriteProcessMemory function to write to the virtual memory of the process. 
    SYNCHRONIZE Windows NT/2000/XP: Enables using the process handle in any of the wait functions to wait for the process to terminate. 
    bInheritHandle 
    [in] Specifies whether the returned handle can be inherited by a new process created by the current process. If TRUE, the handle is inheritable. 
    dwProcessId 
    [in] Specifies the identifier of the process to open. 
    Return Values
    If the function succeeds, the return value is an open handle to the specified process.If the function fails, the return value is NULL. To get extended error information, call GetLastError. Res
    The handle returned by the OpenProcess function can be used in any function that requires a handle to a process, such as the wait functions, provided the appropriate access rights were requested. When you are finished with the handle, be sure to close it using the CloseHandle function.Example Code
    For an example, see Taking a Snapshot and Viewing Processes. Requirements 
      Windows NT/2000/XP: Included in Windows NT 3.1 and later.
      Windows 95/98/Me: Included in Windows 95 and later.
      Header: Declared in Winbase.h; include Windows.h.
      Library: Use Kernel32.lib.See Also
    Processes and Threads Overview, Process and Thread Functions, AssignProcessToJobObject, CloseHandle, CreateProcess, CreateRemoteThread, DuplicateHandle, GetCurrentProcess, GetCurrentProcessId, GetExitCodeProcess, GetModuleFileNameEx, GetPriorityClass, ReadProcessMemory, SetPriorityClass, SetProcessWorkingSetSize, TerminateProcess, VirtualProtectEx, WriteProcessMemory 
      

  3.   

    参考http://expert.csdn.net/Expert/topic/1058/1058753.xml?temp=.1041529