请输入您要查询的百科知识:

 

词条 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

三、Delphi

var

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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/3/22 7:27:44