OpenProcess

王朝百科·作者佚名  2010-03-06  
宽屏版  字体:   |    |    |  超大  

一.VC方法名称:OpenProcess

位置:Kernel32.dll

OpenProcess 函数用来打开一个已存在的进程对象,并返回进程的句柄。

1.函数原型

HANDLEOpenProcess(

DWORDdwDesiredAccess, // access flag

BOOLbInheritHandle, // handle inheritance option

DWORDdwProcessId// process identifier

);

2.返回值:

如成功,返回值为指定进程的句柄。

如失败,返回值为空,可调用GetLastError获得错误代码。

-------------------------------------------------------------

3.举例

HANDLE hProcess =OpenProcess( PROCESS_ALL_ACCESS, FALSE, pID );

----------------------

4.附:

BOOLReadProcessMemory( HANDLE hProcess, PVOID pvAddressRemote, PVOID pvBufferLocal, DWORD dwSize, PDWORD pdwNumBytesRead);

参数

hProcess //为远程进程的句柄

pvAddressRemote //用于指明远程进程中的地址

pvBufferLocal //是本地进程中的内存地址

dwSize //是需要传送的字节数

pdwNumBytesRead和pdwNumBytesWritten //用于指明实际传送的字节数.当函数返回时,可以查看这两个参数的值.

二.在vb中的使用1.VB声明

Declare FunctionOpenProcessLib "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) 打开进程

IfhProcessThen

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.

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有