Delphi新手问两个很初浅的问题.(1)有一个exe文件,假设我想把他offset位置$00444444-$00444446的十六进制值分别修改为$11 $12 $13, 然后在同一目录下生成另外一个exe文件,怎么写代码? 我用TMemoryStream试了好久,搞不定.生成的文件大了一倍.(2)怎么copy 一个文件夹到为另一个文件夹(包括文件夹内的所有内容,假设源文件夹和复制后的文件夹在同一目录).希望不吝赐教. 最好来两段代码说明. 新人钱少,谢谢先!

解决方案 »

  1.   

    var mms:TMemoryStream ;
    var buf:array[0..2] of Byte;
    begin
      buf[0]:=$11;
      buf[2]:= $12;
      buf[3]:= $13;
      mms:=TMemoryStream.Create;
      mms.LoadFromFile('your exe');
      mms.Position :=$00444444;
      mms.Write(buf,3);
      mms.SaveToFile('your exe.bak');
      mms.Free ;end;
      

  2.   


    我之前就是这样写的,生成的文件大了一倍, 刚完全套用你的试了,还是生成的文件大了一倍. 用winhex查看了一下,发现修改的三个字节在文件最后面.另外,没有人告诉我怎么 copy 文件夹吗?
      

  3.   

    TO: itmes谢谢你,你的答案是正确的,刚刚检查了一下,原来是我自己昨晚老眼晕花把偏移看错了,看多一个"0". 晕死了. 
      

  4.   

    2.可先创建同名文件夹,然后将源目录下的文件夹历遍COPY过去