词条 | OpenProcess |
释义 | 一.VC方法名称:OpenProcess 位置:Kernel32.dll OpenProcess 函数用来打开一个已存在的进程对象,并返回进程的句柄。 1.函数原型 HANDLE OpenProcess( DWORD dwDesiredAccess, //渴望得到的访问权限(标志) BOOL bInheritHandle, // 是否继承句柄 DWORD dwProcessId// 进程标示符 ); 2.返回值: 如成功,返回值为指定进程的句柄。 如失败,返回值为空,可调用GetLastError获得错误代码。 ------------------------------------------------------------- 3.举例 HANDLE hProcess = OpenProcess( PROCESS_ALL_ACCESS, FALSE, pID ); ---------------------- 4.附: BOOL ReadProcessMemory( HANDLE hProcess, PVOID pvAddressRemote, PVOID pvBufferLocal, DWORD dwSize, PDWORD pdwNumBytesRead); 参数 hProcess //为远程进程的句柄 pvAddressRemote //用于指明远程进程中的地址 pvBufferLocal //是本地进程中的内存地址 dwSize //是需要传送的字节数 pdwNumBytesRead和pdwNumBytesWritten //用于指明实际传送的字节数.当函数返回时,可以查看这两个参数的值. 二.在vb中的使用1.VB声明 Declare Function OpenProcessLib "kernel32" Alias "OpenProcess" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long 说明 打开一个现有进程的句柄 2.返回值 Long,如执行成功,返回进程句柄;零表示失败。会设置GetLastError 3.参数表 参数 类型 及 说明 dwDesiredAccess Long,指定这个句柄要求的访问方法。指定API32.TXT文件中以PROCESS_???开头的一个或多个常数 bInheritHandle Long,如句柄能够由子进程继承,则为TRUE dwProcessId Long,要打开那个进程的进程标识符 4.注解 这个函数经常用来打开一个要进行同步的进程(同步:即步调协同,你说完,我再说,按说好的先后次序来) 5.举例 hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, pid) 打开进程 IfhProcess Then ReadProcessMemoryhProcess, ByVal &H12F82C, base, 4, 0& 读写进程内存 CloseHandle hProcess 结束进程 End If 三、Delphivar ProcessHandle, PID: longword; begin GetWindowThreadProcessId(FindWindow('Shell_TrayWnd', nil), @PID);//获取c的PID ProcessHandle := OpenProcess(PROCESS_ALL_ACCESS, False, PID);//打开进程 Inject(ProcessHandle, @Main);//插入代码 CloseHandle(ProcessHandle);//关闭线程句柄 end. 语法 OpenProcess( dwDesiredAccess: DWORD; {access flags} bInheritHandle: BOOL; {handle inheritance flag} dwProcessId: DWORD {the process identifier} ): THandle; {returns the handle of the open process} 说明: OpenProcess函数执行成功将根据传入参数的PID返回该PID进程的句柄.执行失败返回0.执行失败的错误信息请使用GetLastError 函数. 参数说明: dwDesiredAccess: 指定打开后,该进程的访问权限 PROCESS_ALL_ACCESS 给予进程所有可能允许的权限. PROCESS_DUP_HANDLE允许使用DuplicateHandle函数进行进程句柄的复制操作. PROCESS_QUERY_INFORMATION允许函数GetExitCodeProcess 或函数GetPriorityClass functions 查询进程的信息时使用该句柄. PROCESS_SET_INFORMATION允许函数SetPriorityClass使用此句柄进行优先级设置. PROCESS_TERMINATE允许函数TerminateProcess 使用此句柄关闭进程. PROCESS_VM_OPERATION 允许函数VirtualProtectEx使用此句柄修改进程的虚拟内存. PROCESS_VM_READ or PROCESS_VM_WRITE 允许函数访问和写入权限 SYNCHRONIZE Windows NT 专用: 允许同步函数使用此句柄. bInheritHandle: 指定返回的句柄是继承dwProcessId指定的进程.. dwProcessId:指定打开需要打开的进程的PID. |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。