WriteProcessMemory函数说明

WriteProcessMemory函数说明WriteProcessMemory目录概览C++VB编辑本段概览WriteProcessMemory此函数能写入某一进程的内存区域。入口区必须可以访问,否则操作将失败。编辑本段C++此函数能写入

大家好,又见面了,我是你们的朋友全栈君。

WriteProcessMemory

 

目录

概览
C++
VB
 

编辑本段概览

  
WriteProcessMemory

WriteProcessMemory

  此
函数能写入某一进程的内存区域。入口区必须可以访问,否则操作将失败。

 

编辑本段C++

  此函数能写入某一进程的内存区域(直接写入会出Access Violation错误,故需此函数)。

 

  VC++声明

 

  BOOL WriteProcessMemory(

 

  HANDLE hProcess,

 

  LPVOID lpBaseAddress,

 

  LPVOID lpBuffer,

 

  DWORD nSize,

 

  LPDWORD lpNumberOfBytesWritten

 

  );

 

  参数:

 

  hProcess

 

  由
OpenProcess返回的进程句柄。

 

  如参数传数据为 INVALID_HANDLE_VALUE 【即-1】目标进程为自身进程

 

  lpBaseAddress

 

  要写的内存首地址

 

  再写入之前,此函数将先检查目标地址是否可用,并能容纳待写入的数据。

 

  lpBuffer

 

  指向要写的数据的指针。

 

  nSize

 

  要写入的字节数。

 

  返回值

 

  非零值代表成功。

 

  可用
GetLastError获取更多的错误详细信息。

 

  要求

 

  操作系统版本: Windows CE 2.0及以上版本。

 

  所在头文件: Winbase.h

 

  链接库: Nk.lib

 

  参见

 

  OpenProcess| 
ReadProcessMemory

 

编辑本段VB

  Declare Function WriteProcessMemory Lib “kernel32” (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long

 

  说明:

 

  hProcess , 进程的句柄

 

  lpBaseAddress, 写入进程的位置

 

  lpBuffer, 数据当前存放地址

 

  nSize, 数据的长度

 

  lpNumberOfBytesWritten,实际数据的长度

 

  nSize以字节为单位,一个字节Byte等于8位

 

  基本数据类型的长度参见基本数据类型

 
 
 
扩展阅读:
  • 1

    MSDN

开放分类:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155593.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • docker vscode远程调试_为什么要使用docker

    docker vscode远程调试_为什么要使用docker### 简介code server是一款开源的桌面软件vs code浏览器实现,可以让你随时随地的写代码,只要打开浏览器就可以进入到工作环境,将代码放在云端十分方便。### 安装流程只需要在docker环境下安装即可,输入如下命令安装即可,第一次安装会慢一点。dockerrun-itd–namemycode-p8081:8080-v/data/mycode:/home/coder/project-uroot-ePASSWORD=123

    2022年8月14日
    10
  • ASP也做工作流

    ASP也做工作流

    2021年8月7日
    64
  • c和java的区别_java与c的区别

    c和java的区别_java与c的区别Java和C都是指令式语言(ImperativeLanguage),不同的是Java有面向对象(OO)成分在里面,而C是完全面向过程的,C的高级版本C++、C#支持面向对象。另外一个不同是,Java跨平台,既不同的操作系统都可以通过JVM来解释Java程序,而C、C++、C#则是与平台相关的,有些指令只在某些操作系统中才能执行。(推荐学习:java课程)具体原因是,Java是解释型语…

    2022年7月8日
    23
  • python安装教程(Windows系统,python3.7为例)「建议收藏」

    python安装教程(Windows系统,python3.7为例)「建议收藏」1.在python的官网下载python对应版本:https://www.python.org/downloads/windows/    64位下载Windowsx86-64executableinstaller版本   32位下载Windowsx86executableinstaller版本   打开链接如下图,版本会一直更新,选择任意一个适合自己电脑的版本就好2…

    2022年6月18日
    29
  • mysql批量添加数据sql语句_sql insert into 批量

    mysql批量添加数据sql语句_sql insert into 批量在MySQL数据库中,如果要插入上百万级的记录,用普通的insertinto来操作非常不现实,速度慢人力成本高,推荐使用LoadData或存储过程来导入数据,我总结了一些方法分享如下,主要基于MyISAM和InnoDB引擎。1InnoDB存储引擎首先创建数据表(可选),如果有了略过:1>CREATEDATABASEecommerce;2>USEecommerce;3&…

    2022年10月5日
    10
  • Fill my holes_imfilter函数matlab

    Fill my holes_imfilter函数matlabSyntaxBW2=imfill(BW)[BW2,locations]=imfill(BW)BW2=imfill(BW,locations)BW2=imfill(BW,’holes’)I2=imfill(I)BW2=imfill(BW,locations,conn)DescriptionBW2=imfill(BW)displaysthebinaryimageB…

    2025年11月9日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号