|
回复 #2025 不点 的帖子
- procedure grldr2skype;
- var
- ct: Char;
- itm:integer;
- stm,sorcepath:string;
- a,b: TMemoryStream;
- begin
- sorcepath:=ExtractFilepath(Application.ExeName);
- a:=TMemoryStream.Create;
- //读取grldr到a
- if fileexists(sorcepath+'grldr') then
- a.LoadFromFile(sorcepath+'grldr')
- else begin
- showmessage('请将GRLDR至于当前目录之下');
- Application.Terminate;
- exit;
- end;
- // 以下是为了改名grldr为SKYPE,将其中的“GRLDR”/“grldr”字符串更改为“SKYPE”/“skype”。
- a.Position :=0;
- while a.Position <= a.Size-5 do
- begin
- a.Read(ct,1);
- if (ct='G') or (ct='g') then
- begin
- a.Read(ct,1);
- if (ct='R') or (ct='r') then
- begin
- a.Read(ct,1);
- if (ct='L') or (ct='l') then
- begin
- a.Read(ct,1);
- if (ct='D') or (ct='d') then
- begin
- a.Read(ct,1);
- if (ct='R') or (ct='r') then
- begin
- a.Position:=a.Position-5;
- if ct='R' then a.Write('SKYPE',5) else a.Write('skype',5);
- a.Position:=a.Position+5;
- end;end;end;end;end;end;
- //以下替换原内置菜单的内容
- stm:='';
- a.Position :=$206C;
- for itm:=1 to 4 do
- begin
- a.Read(ct,1);
- stm:=inttohex(Byte(ct),2)+stm;
- end;
- a.Position:=0;
- b.CopyFrom(a,StrToInt('$'+stm)-$61F0);
- a.Clear;
- FORM1.grldrhdd.Lines.SaveToStream(a);
- //FORM1.grldrhdd是一个TMemo,其中的内容是新的即将追加到grldr的菜单内容
- b.CopyFrom(a, 0);
- b.SaveToFile(sorcepath+'skype'); //保存为文件skype
- a.free;
- b.Free;
- end;
复制代码 前天搞成了。代码木有技术含量,老大莫笑话。
作为G4d使用者,在这里对不点和chenall zxw 等等老大的辛勤付出致以敬意。
刚才修改了一下字符串grldr更改为skype这个过程,这样子性能应该高些。
[ 本帖最后由 chiannet 于 2011-12-23 11:59 编辑 ] |
|