先用FINDWINDOWS得到另外一个程序的句柄
然后使用GETWINDOWTHREADPROESSID得到线程的ID号
再使用OPENPROCESS得到进程的句柄
然后使用ReadProcessMemory就可以了。以上的方法我在制作游戏修改器的时候已经通过了,如需要原代码请联系我
记得给分哦!!! ^_^

解决方案 »

  1.   

    panxiaosen(子木)你好,你的原码是delphi的吗?我需要,一定给分,不够再加
      

  2.   

    panxiaosen(子木)你好,你的原码是delphi的吗?我需要,一定给分,不够再加 
     [email protected]
      

  3.   

    用共享内存不就得了,这方面的贴子我以前回过。
    例子如果你想要的话,我可以发给你。这里我再把我的代码关键的部分拿出来,欢迎大家批评指正....这是发送的部分:主窗口上包含两个Button ,一个输入Edit1,一个提示Label.
    procedure TfrmSendMsg.Button1Click(Sender: TObject);
    var
      Win:HWND;
      Post:Pointer;
      pStr:PShortString;
      Str:String;
    begin
      Str:=Edit1.Text;
      MapHandle:=CreateFileMapping(DWord(-1),nil,PAGE_READWRITE,0,250,'summer');
      if (MapHandle>0) then
        begin
          Post:=MapViewOfFile(MapHandle,FILE_MAP_WRITE,0,0,0);
          pStr:=Post;
          pStr^:=Str;  //写共享内存
        end;
      Win:=FindWindow('TfrmRecvMsg',nil);
      If Win>0 then
        Begin
          PostMessage(Win,WM_USER+100,0,0);  //发消息给接收程序的主窗口...
          Edit1.SetFocus;
          Label2.Caption:='发送完成!';
        end
      Else
        Begin
          Label2.Caption:='接收器没有运行!';
        end;
    end;这是接收部分:
    主窗口包含一个Memo1.unit RecvMsg;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;type
      TfrmRecvMsg = class(TForm)
        Memo1: TMemo;
        Label1: TLabel;
      private
        procedure GetMsg(var Msg: TMessage);Message WM_USER+100; //在这里增加接收的过程
        { Private declarations }
      public
        { Public declarations }
      end;var
      frmRecvMsg: TfrmRecvMsg;implementation{$R *.DFM}{ TfrmRecvMsg }procedure TfrmRecvMsg.GetMsg(var Msg: TMessage);
    var
      MapHandle:THandle;
      pStr:Pointer;
      Str:String;
    begin
      MapHandle:=CreateFileMapping(DWord(-1),nil,PAGE_READWRITE,0,255,'summer');
      if (MapHandle>0) then
        begin
          pStr:=MapViewOfFile(MapHandle,FILE_MAP_READ,0,0,10); //得到共享内存的指针
          Memo1.Lines.Add('收到一条消息!!');
          Memo1.Lines.Add(Pchar(pStr));
        end;
      CloseHandle(MapHandle);
    end;end.
      

  4.   

    summernightrain(夏夜雨)大侠:请发例子给我,谢谢
    [email protected]