h1:= OpenProcess(PROCESS_ALL_ACCESS, false, pid);WriteProcessMemory(h1,Ptr($01012F60),PChar(Chr(1000)),4,0);
h1是进程句柄 改内存$01012F60值为1000运行以后内存值没变化 
请问是哪里原因 高手指点下 没学过delphi依葫芦画瓢来的 高手莫笑 呵呵~~

解决方案 »

  1.   

    我的程序在delphi6下测试成功的
    procedure TForm1.Button1Click(Sender: TObject);
    var
      h1:THandle;
      pid:integer;
      m:dword;
    const
      p:pchar='1111';
    begin
    pid:=2624;  //这个是CMD.exe的PID,我省得用其它的了
    h1:= OpenProcess(PROCESS_ALL_ACCESS, false, pid);WriteProcessMemory(h1,Ptr($40000),p,4,m); //$40000是可写的
    end;
    运行前,我用winhex看它的内存$40000处全为0,运行后变为4字节的
    31 31 31 31
    调用成功
    我不知你用什么版本,关键
    1.OpenProcess不能返回0,你可判一下,如果是0,说明OpenProcess失败
    2.要保证你的内存可写(有API但较繁),简单的,先用winhex写一下试试
    你的版本可能与我的不同,我的d6最后一个参数只能是变量,否则不能编译