玩家天地论坛

 找回密码
 注册
搜索
热搜: 内挂 倚天
查看: 2548|回复: 6

致保岛,大版主。能不能把内挂源码发下来分享一下。

[复制链接]
发表于 2009-12-2 16:00:04 | 显示全部楼层 |阅读模式
能不能把内挂源码发下来分享一下。我们也可以在里面新增功能,拓宽内挂功能哟。呵!
 楼主| 发表于 2009-12-2 16:02:20 | 显示全部楼层
library DllGame; ER]C;DYX  
r_a1oO:  
uses H:1F=$0I9  
  SysUtils, 5FNf)F   
  windows, a5 g1.6hF  
  Classes, #>$w9}gFi  
Dllform in 'Dllform.pas' {Form1}; LrV4^{9(  
//GameProc in 'GameProc.pas'; ?=Z0N&}[  
{$R *.res} 6 ^p>f:5  
const GameCaption='游戏标题';  //这里设置成游戏标题 $J:~jY/J  
var vr>Rd{dm  
keyhhk: HHOOK ; BtWm ZaKi  
ss:string;//用来记录账号密码 oakm{I|k}
 楼主| 发表于 2009-12-2 18:24:14 | 显示全部楼层
unit Unit1; !m@cTB7i   
interface BPY7O  
uses @Kpm&vd(  
registry, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 8?yIixhw  
  Dialogs, ComCtrls, ToolWin, ImgList, StdCtrls, ExtCtrls, ActnList, Menus,shellapi, n2U &}O  
  EffectUtils, AnimationEffect; &tyS6S+  
type VE |:k:};  
  TForm1 = class(TForm) ZbFD|~[ V  
    ImageList1: TImageList; "Lp .*o  
    Panel1: TPanel; &;BhL%)}  
    NewImage: TImage; x@ -K  
    Oldimage: TImage; Vk6c^/v  
    Edit1: TEdit; T^A(v(^D  
    BtnStrart: TButton; (m/:B= K  
    CkBoxEx: TCheckBox; pS?D~0Nb  
    Panel2: TPanel; *p{p.%Qs:  
    Imageqp: TImage; /J`}o}  
    Label1: TLabel; RD`|Z~:q:K  
    Timer1: TTimer; W~ yb>+u  
    Panel3: TPanel; ']}-;m\  
    Memo1: TMemo; Jz8P':6[  
    BtnupdateArray: TButton; 5_^d3LOT0x  
    BtntestArray: TButton; ?$pNduE  
    BtnTest: TButton; vn.5X   
    TrackBar1: TTrackBar; [}L?EM  
    BtnSaveBMP: TButton; @]Q4K%1^"  
    SaveDialog1: TSaveDialog; l$u52e!7  
    Panel4: TPanel; Ana[>wSZO@  
    CHKauto: TCheckBox; =Uk #7U"  
    autoStartChk: TCheckBox; Lg\3DzM  
    Panel5: TPanel; +*.*bo  
    chkSaveToReg: TCheckBox; AQ-PHv  
    ChkAutoToolS: TCheckBox; q/?*|4I  
    FormONTop: TCheckBox; ;adZ*'6u  
    isTopCheck: TCheckBox; SU%O\ 4Ty  
    ChkRunLogin: TCheckBox; F2 YBkwI  
    Button1: TButton; tGOJ4 =  
    AnimationEffect1: TAnimationEffect; V@0T&#  
    PopupMenu1: TPopupMenu; -#%M,Qb  
    N1: TMenuItem; Q & /5B  
    N2: TMenuItem; Lginps[la  
    procedure FormCreate(Sender: TObject); &pK0>2  
  k3&68 +  
    procedure ImageqpMouseMove(Sender: TObject; Shift: TShiftState; X, *6JA&zj0B  
      Y: Integer); c RI2$|  
    procedure BtnStrartClick(Sender: TObject); @ws&W=NQ  
    procedure isTopCheckClick(Sender: TObject); e&ti(Q=  
    procedure WMHOTKEY(Var msg1:Tmessage);message WM_HOTKEY; Z7wl~Hk  
    procedure FormONTopClick(Sender: TObject); b!t[PShw^  
    Function compare(old,new:Timage{充许误差值}):integer; / 8O=3  
    procedure BtntestArrayClick(Sender: TObject); m +A4aQ9  
    procedure Memo1KeyPress(Sender: TObject; var Key: Char); ]9_tto!/  
    procedure BtnupdateArrayClick(Sender: TObject); q1 HJ_y  
//    procedure CheckBox2Click(Sender: TObject); #^9bBF/  
    procedure BtnTestClick(Sender: TObject); m|JA }&A  
    procedure Label1MouseMove(Sender: TObject; Shift: TShiftState; X, t=eI*M+>h  
      Y: Integer); 7r:&%?2:g  
    procedure Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, 1z|bQ,5  
      Y: Integer);  G>?kskm  
    procedure Label1Click(Sender: TObject); dU_;2d$  
    procedure Timer1Timer(Sender: TObject); "Plo[E  
    procedure CkBoxExClick(Sender: TObject); {nM1$  
    procedure TrackBar1Change(Sender: TObject); FaJK R  
    procedure BtnSaveBMPClick(Sender: TObject); pC,Z=+:  
    procedure FormClose(Sender: TObject; var Action: TCloseAction); gdSqG2/&  
    procedure CHKautoClick(Sender: TObject); ?=)lbSu K  
    procedure Button1Click(Sender: TObject); 5'DY)s-K  
    procedure N1Click(Sender: TObject); UM0Ws|qx&  
    procedure N2Click(Sender: TObject); \ ^pc"?Rc  
   // procedure MenuExitClick(Sender: TObject); k8J zey]X  
  private J:'_S `J  
    { Private declarations } #?\(l%  
  public T9J&^I  
    { Public declarations } k(7Q\JKE  
  end; PepR ]ym  
   type 'Qg!ww7O  
   qp=array[0..8,0..8] of integer; K:XP;#OsP  
   xyTwo=array[1..2] of Tpoint; AB3OG*C9  
var 8JQ\eF$ma  
  Form1: TForm1; :J @3:+sr  
    FH:hWND; //窗口句柄 [\eVX `it  
  i,j:integer; 1_!?wMo:f  
  arrayQP:qp; mrsmul{  
  hotkey_str:string; XUVj<U  
  autoplayT,t1:systemTime; |ssl0/ nk  
implementation _OjZ>j<B.  
{$R *.dfm} =Yl ea,S  
   Function Tform1.compare(old,new:Timage):integer; sm Ql^ 6a  
   var HnjA78%i  
   Tnum,x,y:integer; =#p Yd~  
    c1,c2:Tcolor; aaKf4}  
   begin ^$% Sg//  
   // if bw<1 then bw:=1; _[E+D0A  
    tnum:=0; + a nsN~3  
      //i:=new.Picture.Bitmap.Width; 7$g$p&,VX  
     // j:=new.Picture.Bitmap.Height; Z- a  
      for x:=19 to 22 do d8agM/F*/  
        for y:=19 to 22 do >w7KOVbN3  
          begin V7nOT*N  
             c1:=Getpixel(old.Canvas.Handle,x,y); ?$ )5NQB%  
             c2:=Getpixel(new.Canvas.Handle,x,y); :8oJG8WH  
             if c1 =c2 then Tnum:=Tnum+1; ihwJBN>(  
          end; `vOL3`P
 楼主| 发表于 2009-12-2 18:24:32 | 显示全部楼层
Result:=round(Tnum*100 /(16));          //取整数部分 100分比 >L!c} Ku  
   end; jy2gR1~  
n6WKk+  
procedure TForm1.FormCreate(Sender: TObject); EmcLW74  
var }kr?+)wB  
reg:Tregistry; 0&]1s  
ec:Tcanvas; T{3nIF  
begin PgK7CG7G  
////////////// Button 颜色 n8F5z|/  
hotkey_str:='F1 已经按下..'; m?<E >-bI  
ec:=Tcanvas.Create; HVHv,:bPo  
ec.Handle:=getdc(form1.Button1.Handle); ZzupK^5Z  
  ec.Brush.Style:=Bsclear; 3)W zX  
ec.Font.Color:=clRed; 4_=2|2Wz[  
ec.TextOut(19,5,button1.Caption ); k[ro[E  
ec.Free; tWIJ,_8l  
/////////////// BtC*]WB"_'  
reg:=TRegistry.Create; vNv!fkl  
//key1.RootKey:=  HKEY_CURRENT_USER; MWh Y&I+  
       try ?F AI@4  
          Reg.RootKey   :=   HKEY_CURRENT_USER; r!2U#rz  
          Reg.OpenKey('\Software\对对碰辅助程式',   True); | ]*3En:  
  if   reg.ValueExists('autoStartChk') then autoStartChk.Checked:=reg.ReadBool('autoStartChk');  ; E7MSoBX9M  
    if   reg.ValueExists('ChkAutoToolS') then  ChkAutoToolS.Checked := reg.ReadBool('ChkAutoToolS'); ; AzOs/q8O  
        if   reg.ValueExists('ChkRunLogin') then  ChkRunLogin.Checked:= reg.ReadBool('ChkRunLogin');; ;KlYiu  
            if   reg.ValueExists('chkSaveToReg') then chkSaveToReg.Checked:=  reg.ReadBool('chkSaveToReg');; qcj {rG18  
                if   reg.ValueExists('FormONTop') then  FormONTop.Checked:= reg.ReadBool('FormONTop');; pUXoSnIq:  
                    if   reg.ValueExists('isTopCheck') then  isTopCheck.Checked:= reg.ReadBool('isTopCheck');; W[\6h Zv  
                       if   reg.ValueExists('CHKauto') then  CHKauto.Checked:=reg.ReadBool('CHKauto') ; sE pI)9  
                           // if   reg.ValueExists('CHKauto') then   ; Cq\XLh `  
          finally %y6(+I #P  
          reg.CloseKey; &J>e; X  
          reg.Free; q!ZM Wg  
          end; `x[Is$  
/////////////////////////////////////////////////// 4dX{an]Cz  
i:=0; ).SJ*Re*^I  
windows.RegisterHotKey(form1.Handle ,111,0,VK_F10);//注册热键 F10   显示隐藏 =yf) Z^  
windows.registerHotKey(form1.Handle,222,0,VK_END);//注册热键 END e&}W#  
windows.registerHotKey(form1.Handle,333,0,VK_HOME);//注册Home热键 cS;3,#$  
windows.RegisterHotKey(form1.Handle,444,0 ,windows.VK_F1   );//自动打一次 D.K""*ula  
windows.RegisterHotKey(form1.Handle,555,MOD_CONTROL,ord('1'));     // CTRL+< %QezC+n  
windows.RegisterHotKey(form1.Handle,666,MOD_CONTROL,ord('2'));       //CTRL+> K^u,B3  
//精简窗口 pU$k{^'UK  
  'Gy`e-yB  
//messagebox(form1.Handle,'按F10隐藏或显示辅助程式, 按END键 暂停, 按HOME键 继续 '+#13+#10+'...编写此软件 纯为学习 交流 不得用于非法用途...','08年5月 为好友《火鸟》制作',MB_OK or windows.MB_ICONERROR  ); uJw?5kEbv<  
//格式二:http://网站域名/网页文件名。 I/O3OD  
//ShellExecute(handle, 'open', 'http://download.csdn.net/user/kkksi13996362600',nil,nil,SW_SHOWNORMAL); 2q~ .,vpP  
form1.Caption:='meitn; JrzPDb`m  
edit1.Color:=Graphics.clGreen ; g #5R|| r  
edit1.Font.Color:=Graphics.clWhite  ; fVbjU1N  
edit1.Text:=''; 'nCVjO7o  
form1.Width:=panel1.Width+5; %K6veB{M  
panel4.Top:=panel1.Height +3; Q 5,zs_j  
panel5.Top:=panel4.Top+panel4.Height+3; $ev+0m_  
form1.Height:=panel1.Height +panel4.Height+panel5.Height+33; C[J9 =!t  
end; /<rvaR  
procedure ClickStart; giakEPl  
var }y(t')=9  
wm1:windowPlacement; j4$nr=d.6  
x,y:integer; +kL7"  
//c1:Tcolor; aU!}j'5Q  
begin )|~K&qn`  
    if      getpixel(GetDC(fh),387,388)<> 15765752 then exit; I dK*IA4  
    if not form1.autoStartChk.Checked then exit; jPWONz(#  
  //如果 没有满足要求的  检测 是否重新开始 C QkY6  
                                               windows.GetWindowPlacement(fh,@wm1); & NYaKu,}  
                                               //390,393 为开始按钮位置 cY?|RXNmZ  
                                                x:=wm1.rcNormalPosition.Left+387; @%4 '2b  
                                                y:=wm1.rcNormalPosition.Top+388; 7`|'Om?'  
                                                //检测 开始游戏 按钮 16293112)  then begin kckRHb eU  
      //350,380                                                    是否存在  // X=387,,Y=388   Tcolor=15765752 #-L0.z(  
      //form1.edit2.text:=intTostr( getpixel(GetDC(fh),387,388) ); +7.|1x;C  
          \BHZRytQF  
OyO<A3  
             windows.SetCursorPos(x,y); //390,393 $kUB%\`  
             mouse_event(MOUSEEVENTF_LEFTDOWN,X ,Y , 0, 0);   //左键按下 "r^RfZ;  
             mouse_event(MOUSEEVENTF_LEFTUP,X ,Y , 0, 0);       //左键抬起 ZF7n]LgSc&  
dz^HN`AlzC  
end; +`d92Tz  
procedure TForm1.ImageqpMouseMove(Sender: TObject; Shift: TShiftState; X, qiz(k:\o  
  Y: Integer); $0V+<  
begin utck{]P  
//edit1.Text:=intTostr(x)+','+intTostr(y); wDvu2iC=  
end; gS FZ>v*6  
Function FindHead(var image:Timage;imageList:TimageList):integer;  //返回image在 Timagelist里的序号 6 IvAs-%W  
var =%` s-[5b  
i:integer; onu G  
//image2:Timage; V Rv4p5  
begin 'xS@cF o(  
  //image2:=Timage.Create(nil); 4b<|jVl\  
    for   I:=0 to imagelist.Count-1 do n n F  
       begin $~5H-wJ  
          imagelist.GetBitmap(i,form1.Oldimage .Picture.Bitmap ); b_sasZo  
          form1.Oldimage.Refresh; K~#?Y,}O  
          // t:=form1.compare(image,form1.oldimage); I'xc$f_+  
     if form1.compare(image,form1.oldimage)>=60 then h] ho? K  
             begin @PM<pEve  
             RESULT:=i+1; & en2t=a  
             exit; '=nmdqP  
             end;   //end if igL5nE=n  
    // if t>1 then Result:=11; =w`Mc\o"  
       end; //end for Xr^ 5Th\  
   RESULT:=0; RF*>U a  
end; !RJ@;S  
procedure TForm1.BtnStrartClick(Sender: TObject); Kz b-a$  
var Q=! lbW  
  wm1:WindowPlacement; Mx w-f4j  
begin y# \"yykB  
fh:=findwindow('#metin','metin); t >quY$}4  
edit1.Text:=intTostr(fh); P'iX?+*  
if fh<=0 then begin messagebox(form1.Handle,'请打开倚天,再试','错误,未运行',MB_OK or windows.MB_ICONERROR ); edit1.Text:='请打开游戏再试...'; exit;  end;            //如果 游戏未打开,,就此退出 cFie;k  
windows.GetWindowPlacement(fh,@wm1); ax5n}  
   form1.Left:=wm1.rcNormalPosition.Right; \>4 >sCC  
   form1.Top:=wm1.rcNormalPosition.Top; c1kV}-v  
edit1.Text:=intTostr(getDC(fh));            //266,132  取得游戏句柄 2F dwX ,O.  
bitblt(form1.Imageqp.Canvas.Handle,0,0,384,384,getDC(fh),268,94,SRCCOPY); //268,94       是游戏在窗口里的 位置 \RDqW+,  
imageqp.Refresh; auIW>0?}  
// 游戏置顶 !!A(A^s  
SetWindowPos(fh,windows.HWND_TOP ,0,0,0,0,windows.SWP_NOSIZE or windows.SWP_NOMOVE  ); RF8, qz  
SetWindowPos(form1.Handle ,HWND_TOPMOST,0,0,0,0,windows.SWP_NOSIZE or windows.SWP_NOMOVE  ); b i-Am/9  
//开启 辅助程式 JoB-&r}\V*  
timer1.Interval:=(form1.TrackBar1.Position+6)*100; 9FC_B+7  
timer1.Enabled:=form1.CHKauto.Checked ; zxs)o}8icO  
  isTopcheck.Enabled:=true; )w}'kih  
T+0z.E!~I  
end;  S\ ZCZ0  
Function ReadQPtoArray:boolean;   //读取到到数组 VwBw!,%Ab  
  var ;E{@)X..|  
x,y:integer; FME,W&_d  
begin - q)|I|y*7  
//Result:=false; 1 h162  
//读取棋盘数据到 数组 +yr~UP_ }  
for  x:=0 to 7 do x`p908S^  
   for y:=0 to 7 do V LeYO5'L  
      begin )g&nI <Mh  
        bitblt(form1.Newimage.Canvas.Handle,0,0,48,48,form1.imageqp.Canvas.Handle, x*48,y*48,SRCCOPY); &B+_#V=X@  
        form1.newimage.Refresh; /a$Zzs&xs  
        arrayQP[x][y]:=FindHead(form1.newImage,form1.imageList1);  //比较此单元 属于哪个动物头像 K)Ya%%6[U#  
        if arrayqp[x][y]=0 then begin Result:=false;   exit;  end; 2 =>3B  
        // application.ProcessMessages; e'v_eD T^  
      end; Nb0T3\3W  
      Result:=true; PJKxh%J  
end;                                                       uW( Ngcpr  
procedure TForm1.isTopCheckClick(Sender: TObject); 6!U~dt#a  
je:J`4k$  
begin =(<7o_gJ  
if form1.isTopCheck.Checked then dDYor-g>  
begin 3=Xvl 58k  
  SetWindowPos(fh,HWND_TOPMOST,0,0,0,0,windows.SWP_NOSIZE or windows.SWP_NOMOVE  ); Nw1 .x  
end else    SetWindowPos(fh,windows.HWND_NOTOPMOST ,0,0,0,0,windows.SWP_NOSIZE or windows.SWP_NOMOVE  ); #\}xyPS  
end; p|r>tBv?x  
procedure TForm1.FormONTopClick(Sender: TObject); p:!FB8  
begin V2 }.X+u&<  
if FormONtop.Checked then  >BMtR0  
    form1.FormStyle:=forms.fsStayOnTop rN~V^k  
  else *u34~v16,  
    form1.FormStyle:=forms.fsNormal; ,v*\2oG3^  
end;  ZN;fDv  
PiX(Ase  
procedure TForm1.BtntestArrayClick(Sender: TObject); VB+y9$Y'  
var |uA /72  
x,y:integer; $I3}% '`+  
begin E-#}.}i5  
//读到数组 ) }\J    
if ReadQPtoArray then edit1.Text:='更新数组成功'; {,o 0N\(  
bO gVC g  
//检查 数组值 Qb1hk*$=  
memo1.Text :=''; iC<qWq|S_m  
//清空 ?7aeY5 p  
for  y:=0 to 7 do Al}%r85  
begin   memo1.Text :=memo1.Text +#13+#10; ncij)7c)u  
  for x:= 0 to 7 do +C[%^G-:  
  memo1.Text  :=memo1.Text+intTostr(arrayqp[x][y]);     end; <#:ey^q<  
end; #; >v,Jo  
YZ^;xV  
procedure RefrechQP;    //更新 ;[[oZ  
begin (wZ/I(4  
if fh<=0 then  exit; yK:b $S  
bitblt(form1.Imageqp.Canvas.Handle,0,0,384,384,GetDC(fh),268,94,SRCCOPY);//    //268,94 X?OH//co  
form1.Imageqp.Refresh; 5g;i{T/6~x  
end; j q1 |`:
 楼主| 发表于 2009-12-2 18:24:48 | 显示全部楼层
// >du|DZq  
Function TestX(qp1:qp;x:integer):integer; //Y 方向 如果有相连 3 5TS&NefM  
var _tQR3I5  
r1,y:integer; NN@'79x  
begin xg_9#  
   r1:=1; J'Y;j^  
   result:=0; , FD RU  
   for y:=0 to 6 do 6 ly`lu9  
    if qp1[x][y]=qp1[x][y+1] then begin  r1:=r1+1 ; if r1> result then Result:=r1;end w>h\643  
                             else begin     r1:=1;     end;  &'<e9  
                             8a3h)R  
7 HM%Cd  
end; _%sAj  
Function TestY(qp1:qp;y:integer):integer; //X 方向 如果有相连 返回真 /m CE=  
var ~X!Z+Vg  
r1,x:integer; 0*yD   
begin )uu1AbT +e  
      r1:=1; ?Es(pwJB  
      Result:=0; qPF`= #  
   for x:=0 to 6 do :kQydCuK  
    if qp1[x][y]=qp1[x+1][y] then begin r1:=r1+1 ;if r1> result then Result:=r1;end m6M ko2  
                             else begin  r1:=1;    end; h'ik19  
V;29ieE!  
end; (5a:O (\r  
Function planQP(qp1:qp):XYTwo;        //返回交换点 aI;-NnC  
var h0a|R4J  
test, tp1,tp2,x,y,t:integer; *WaqNMD[%  
tempQP:qp; 5yk#(i 7C  
// wm1:  WindowPlacement; %%FzBbWAO  
begin  G& m~W  
//form1.Caption:='dd'; <.".,Na(J0  
f~ wgMp.W0  
          //如果 没有图案 ZeLed[J^xJ  
gCq'#G\Z  
    tp2:=0;  //tp1:=0;                                         //////////////////////////////////// +/ rt'0o  
//横向交换     (x,y) (x+1),y 1Li*n6tLX`  
  for y:=0 to 7  do Q[{RN ab  
     for x:= 0 to 6 do wJj:hA}  
     begin Cxeam"-HTt  
     tempqp:=qp1; tp1:=0; BP}@E$  
      //交换点(x,y) 和 (x+1),y 值 #a9O3C/MP  
M|NQoQ8q  
       t:=tempqp[x][y]; tempqp[x][y]:=tempqp[x+1][y]; tempqp[x+1][y]:=t; Y_K W9T_  
  // 检测 X列                           有满足要求的 则返回坐标 并退出; l dqU#{  
    test:= testx(tempqp,x); Z&O6<=bg!  
   //  if test>=3 then    form1.Memo1.Lines.Add('x:'+intTostr(x)+',Y:'+intTostr(y)) ; SA7(EJ95  
   if test>2 then begin tp1:=tp1+test;   end; P?S]Q19Q4  
  // 检测 X+1列                         有满足要求的 则返回坐标 并退出; xv&h>GOg  
    test:=testx(tempqp,x+1); f ,4erTBH  
   if test>2 then begin tp1:=tp1+test;   end;  +IO>%  
   //if test>=3 then    form1.Memo1.Lines.Add('x:'+intTostr(x)+',Y:'+intTostr(y)) ; GC:q6}  
-]+pwZ4g  
  //检测 Y 行                         有满足要求的 则返回坐标 并退出; SnR2o3r-Of  
   test:=testy(tempqp,y); le]~Cy0  
   if test>2 then begin tp1:=tp1+test;   end; nwh@F1|  
  // if test>=3 then    form1.Memo1.Lines.Add('x:'+intTostr(x)+',Y:'+intTostr(y)) ; /-,\$@J5)  
   if tp1>tp2 then begin tp2:=tp1;  Result[1].X:=x;Result[1].Y :=y; result[2].X:=x+1;result[2].Y:=y;end; QW$p{ zo  
U8AH,?]#  
     end; //end for N@L{9ak1  
w7o`B R  
//     .............................................................6,6:6,7   // a5GLbanF  
  for x:=0 to 7 do  -X71JU  
    for y:=0 to 6 do msM1K1er  
        begin -^lc-$0  
   //竖向交换 (x,y) (x,y+1) s0^(yEcq  
        tempqp:=qp1; tp1:=0; u }gavG l  
//        交换  x,y 和x,y+1 GD{L$#i!  
           t:=tempqp[x][y];tempqp[x][y]:=tempqp[x][y+1]; tempqp[x][y+1]:=t; Cq"KKuf  
       //  y 行变化                 有满足要求的 则返回坐标 并退出; {PcJuRTHB  
               test:=TestY(tempqp,y); P}Kgh7)3  
             if test>2 then begin tp1:=tp1+test;  end; 8~]D!c8;a  
          //   if test>=3 then    form1.Memo1.Lines.Add('x:'+intTostr(x)+',Y:'+intTostr(y)) ; akxNT_   
       //   Y+1 行变化        有满足要求的 则返回坐标 并退出; YR9fw  
          test:=TestY(tempqp,y+1); 6t6Z&0$h~  
        if test>2 then begin tp1:=tp1+test;end; ds(?:zx#  
       // if test>=3 then    form1.Memo1.Lines.Add('x:'+intTostr(x)+',Y:'+intTostr(y)) ; GWnIy6TH l  
       // X 列变化          有满足要求的 则返回坐标 并退出; S{rltT-  
         test:= Testx(tempqp,x); <W80AJ  
        if test>2 then begin tp1:=tp1+test; end; h[ DNhR  
      //  if test>=3 then    form1.Memo1.Lines.Add('x:'+intTostr(x)+',Y:'+intTostr(y)) ; 5ilGWkb`'X  
        if tp1>tp2 then begin tp2:=tp1; Result[1].X:=x;Result[1].Y :=y; result[2].X:=x;result[2].Y:=y+1; end; }02`ve*   
       end; //end for r ]DiB:.  
U(#<D7}  
K,E/.Qe\C  
end; ;c(a)_1  
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char); "|SMRc  
begin ,N.8  
//form1.Caption :=key; ,fkvvM{mq  
end; #~*v##^vFH  
procedure TForm1.BtnupdateArrayClick(Sender: TObject); ToXWFX  
var Dyo v}y  
i:integer; y+k_&ss  
begin I C`3%^  
refrechqp;         //图片 51#*8u+L  
i:=   findhead(imageqp,imagelist1); @T'^V0!-q:  
form1.Caption:=intTostr(i)+'...; #@XBHJ D\#  
end; .Ro/ioq  
,T/Gv;wa2  
procedure TForm1.BtnTestClick(Sender: TObject); `c`VIq?  
var 7+O)AU{  
  p1:xyTwo; DiCz%'N  
begin #8$?# dT  
    p1:=planQP(arrayqp); P"YdB|I  
    form1.Caption:=intTostr(p1[1].X)+' '+ intTostr(p1[1].y)+' '+intTostr(p1[2].X)+' '+intTostr(p1[2].y); {15j'Qwm  
end; '\:4Ijp<"  
procedure TForm1.Label1MouseMove(Sender: TObject; Shift: TShiftState; X, X+hHEkJ  
  Y: Integer); 'o AmA=  
begin w^yb`\$  
  label1.Font.Color:=CLRed; c4JV~VS+  
  label1.Font.Style:=[FSUnderLine]; ER0 Yl  
end; ]#tB[ G  
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, A&HkF  
  Y: Integer); O<u=Vz3c~0  
begin *"%TAe7?~+  
label1.Font.Color:=CLGreen; {)YbksrJ{  
label1.Font.Style:=[]; 7! O"k#  
end; _v!7 |&\  
procedure TForm1.Label1Click(Sender: TObject); cslC+e/  
begin K'A+V  
//格式二:http://网站域名/网页文件名。 ~7m`p3W@  
ShellExecute(handle, 'open', 'www.yjxsoft.net',nil,nil,SW_SHOWNORMAL); _l d.Xmvd  
hkK>h  
end; T:^.; ZY  
Function autoPlay(p:xyTwo):boolean  ; _@5Xmr  
  var ]U?nYppV  
t:systemTime; m&)/>'W   
wm1:WindowPlacement;         //用来获取 游戏窗口 信息的  结构体 Nr|Gw @+  
p1,p2:Tpoint; K\xz|Gq  
t1,t2word; p=+Y7NE)  
begin gt Kih  
Result:=false; ak7%  
/////////////延时//延时//延时//延时//延时//延时//延时//延时//////  运行此函数 间隔 ?1Nz ,Lc$  
windows.GetSystemTime(t); x[ A|@\ Z  
t1:=((t.wHour*60+t.wMinute) *60+t.wSecond ) *1000+t.wMilliseconds; . Xlo-gHk  
t2:=((autoplayt.wHour *60+autoplayt.wMinute )*60+autoplayt.wSecond )*1000+autoplayt.wMilliseconds; G|cjI*  
if (t1-t2)<500 then begin form1.Edit1.Text:='时间差<0.5秒退出'; exit; end; FPc `J  
form1.Memo1.Lines.Add(intTostr(t.wSecond*1000+t.wMilliseconds-autoPlayt.wSecond*1000-autoPlayt.wMilliseconds ));  ^B"LT>.[  
/////////////// //延时//延时//延时//延时//延时//延时//延时//延时//延时//延时//延时 P| NGAd  
  windows.GetWindowPlacement(fh,@wm1); `E~"T 0RX  
//windows.SetWindowPlacement(fh,@wm1);   268,94       位置 PYQ0&;z  
p1.X :=wm1.rcNormalPosition.Left+268+p[1].X*48+23; ("`"?G  
p1.y :=wm1.rcNormalPosition.Top+94+p[1].Y*48+23; VgPlIIHh5  
p2.X:=wm1.rcNormalPosition.Left+268+p[2].X*48+23; =CzGI|pb  
p2.Y:=wm1.rcNormalPosition.Top+94+p[2].Y*48+23; .7.G}z1  
  //  单击 p1[1].x,p1[1].y ~n -N  
  windows.SetCursorPos(p1.X,p1.Y ); O%%Q./oh  
  windows. mouse_event(MOUSEEVENTF_LEFTDOWN,p1.X ,p1.Y , 0, 0);   //左键按下 <*vR _?!  
  mouse_event(MOUSEEVENTF_LEFTUP,p1.X ,p1.Y , 0, 0);       //左键抬起 u ?V}pYX
 楼主| 发表于 2009-12-2 18:25:16 | 显示全部楼层
//延时 2K4Xu9-i:b  
  //sleep(100); & n*ga$Q  
  application.ProcessMessages; [kJ;Uxncz~  
  .QY>@b\  
  //单击 p1[2].x,p1[2].y -.Wwo(4  
   windows.SetCursorPos(p2.x,p2.y); "9s}1C;Me  
  windows. mouse_event(MOUSEEVENTF_LEFTDOWN,p1.X ,p1.Y , 0, 0);   //左键按下 JbEEI(Q>g  
  mouse_event(MOUSEEVENTF_LEFTUP,p1.X ,p1.Y , 0, 0);       //左键抬起 oW OR7)?r  
   //延时 HRT NIx  
   autoplayt:=t; wmpQF<  
  Result:=true; WiH8j$;xu  
end; \[!{tbK`2  
Function AutoRun:boolean; 75>%!mhM  
var Dj= {%  
p1:xyTwo; DK2Wjr;  
t:systemTime; =ZS Yg K  
begin T6SYXQd>.  
result:=false; #++:`Z  
if findwindow('#metin','metin)=0 then exit;   //如果游戏不存在 则关闭 *s, bz.[  
// 更新 QlVj#Jv;~  
RefrechQP; },<Y \  
// 读数据 到数组 {M o[C%  
if not ReadQPtoArray then begin ClickStart; exit; end; -^np"Jk  
// 计算 交换点  "X=^MGV  
p1:=planQP(arrayQP);   if (p1[1].X =p1[2].X ) and (p1[1].Y =p1[2].Y) then begin form1.edit1.Text:='交换点计算失败'; exit;end; A+Bq5mik  
form1.edit1.Text:=  intTostr(p1[1].X)+' '+ intTostr(p1[1].y)+' '+intTostr(p1[2].X)+' '+intTostr(p1[2].y); Q?.9BM1V  
// 自动 游戏 A[4HD!9=  
getsystemTime(t); !9qw  
if autoPlay(p1) then form1.Edit1.Text:='成功点击鼠标'+intTostr(t.wMilliseconds ); LvGo$f/9  
result:=true; p]e.E`'S  
//  准备下一次 qU&v50n  
end; e2xKo1?I  
procedure TForm1.Timer1Timer(Sender: TObject); 'D[ *|Qcy  
begin *Qngx  
autorun; [ P*L`F  
end; cri-u E?  
procedure TForm1.CkBoxExClick(Sender: TObject); AgDXpa q  
begin \*fXPJ4  
form1.AutoSize:=false; <0/)v J- 9  
   panel3.Visible:= CkBoxEx.Checked; bHDZ=Ik  
   panel2.Visible:= CkBoxEx.Checked; 80U(q/H%9  
    //sleep(100); rv~OfL  
    form1.Width:=panel1.Width+panel3.Width; >)`*:_{  
    form1.Height:=panel3.Height+panel2.Height ; e{Mkwi+j  
    form1.AutoSize:=false; <UW-fI)X  
end; SphP@J<ONW  
procedure TForm1.TrackBar1Change(Sender: TObject); =`qEwA  
begin EP{ji"/7[  
timer1.Interval:=(trackbar1.Position+6)*100; C61E=$  
edit1.Text  :=intTostr(timer1.Interval )+'毫秒'; fHF*#  
end; JGlp7wro  
procedure TForm1.BtnSaveBMPClick(Sender: TObject); FdxV#.BE  
begin &7w*=f8I  
form1.SaveDialog1.Execute; tRR<4}4R  
if saveDialog1.FileName ='' then exit; RbEtNwG@c  
form1.Imageqp.Picture.SaveToFile(saveDialog1.FileName ); 5BMrn0  
end; /,9n1|FrG  
procedure TForm1.WMHOTKEY(var msg1:Tmessage);//message WM_HOTKEY; )4FW~o<i  
var 7!g4`@!5M  
  t:systemTime; LV]F?O[K=  
    begin NHD`c)Q  
    case msg1.WParam of E#yG}UWe  
    111: form1.Visible :=not form1.Visible ; 6P`!yBAu  
    222: begin timer1.Enabled:=false;form1.CHKauto.Checked :=false; edit1.Text:='自动游戏功能关闭..'; end; ghaO#kI  
    333: begin timer1.Enabled:=true;form1.CHKauto.Checked :=true;;edit1.Text:='自动游戏功能开启..';end; T:VFyby\w  
    444: begin edit1.Text:=hotkey_str; GetSystemTime(t); form1.Memo1.Lines.Add(intTostr(t.wSecond*1000+t.wMilliseconds -t1.wSecond*1000-t1.wMilliseconds  ));t1:=t;autorun;end; bSk)GZyH\d  
    555: begin edit1.text:='...';form1.TrackBar1.Position:=form1.TrackBar1.Position +1; end; DP &*P/  
    666:begin edit1.text:=',,,,,';form1.TrackBar1.Position:=form1.TrackBar1.Position -1;  end; 4u]>$?X1_  
    end;//end case 5NhwIu^<  
ft Rza  
    end; O.'\GM  
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); @l&>C#K\  
var f:textfile; reg:Tregistry; L[}Ak1 A  
begin {GQRJ8m  
///////////////////// u\}"l2 r  
   reg:=Tregistry.create; ]t.6bb4  
   try u*<knZ~ty  
   reg.RootKey:=windows.HKEY_CURRENT_USER; )\l(h%s[I  
   reg.OpenKey('\Software\对对碰辅助程式',true); rL<a^/b/=  
   reg.WriteBool('autoStartChk',autoStartChk.Checked ); .# }`r`/  
    reg.WriteBool('CHKauto',CHKauto.Checked ); J4q_}^/2w  
     reg.WriteBool('ChkAutoToolS',ChkAutoToolS.Checked ); ^Z:qlYZ  
      reg.WriteBool('ChkRunLogin', ChkRunLogin.Checked ); 61&A`  
       reg.WriteBool('chkSaveToReg',chkSaveToReg.Checked ); _Rm1-,3  
        reg.WriteBool('FormONTop',FormONTop.Checked ); 05/'qf7P,U  
         reg.WriteBool('isTopCheck',isTopCheck.Checked );  @1O.;  
   finally }ujl2uhM  
   reg.CloseKey; )~H&YINhn  
   reg.Free;  nypG  
   end; &u~#bDh  
////////////////////写入注册表 oS Apa  
try wJu,N(U  
assignfile(f, '数据.txt'); Q,< V)  
rewrite(f); RG V}c#  
writeln(f, form1.memo1.text); I/ V`@*/+  
finally ^%jk.*  
closefile(f); 7dtkylW  
application.Terminate; //多窗口时 一定要用 这句才能结束 整个进程 :~%{  
end; IJ#+"(?7,u  
end; 5!*@gn  
$Z[W}7{pt#  
procedure TForm1.CHKautoClick(Sender: TObject); FoB^iA6 e  
begin o* C_9M  
timer1.Enabled:=chkauto.Checked; {?hpW+1,#  
end; cPbAR'  
procedure TForm1.Button1Click(Sender: TObject); cyPJ( &;  
var /;clxtus  
x,y:integer; xn vG5  
tempimage: Timage; gUHx(Fi[4  
begin jN T+?2  
  tempimage:=timage.Create(self);  ckdXla  
   tempimage.Width:=48; S:8 WBY]M  
   tempimage.Height:=48; %:e.ES  
for  x:= 0 to 7 do Ci_Qra 6  
   for y:=0 to 7 do B!1Bg9D  
   begin Z~1uyr(  
      bitblt(tempimage.Canvas.Handle,0,0,48,48,imageqp.Canvas.Handle,x*48,y*48,SRCCOPY); E4, J"T|@  
      Tempimage.Repaint; L%;[tu(*  
      tempimage.Picture.SaveToFile(intTostr(x)+intTostr(y)+'.bmp'); nZ % %{#T7  
  end; 2;ju/9 x  
end; 3@42u G>  
procedure TForm1.N1Click(Sender: TObject); y;<F|zIm  
begin Z ygu/M 6  
form1.N1.Checked:= not form1.N1.Checked ; $:RR1.Tv  
form1.N2.Checked:= not form1.N2.Checked ; otbr8&?-  
form1.N2.Enabled:=not form1.N2.Enabled; 'P)c'uqd#  
form1.N1.Enabled :=not form1.N1.Enabled; b|e1HCH  
windows.RegisterHotKey(form1.Handle,444,0 ,windows.VK_SPACE    );//自动打一次 72ZoN<c  
hotkey_str:='空格 已经按下..'; 4W#DLip9  
end; 0f#xy S 3  
procedure TForm1.N2Click(Sender: TObject); ^.9Df A0  
begin Eq|5PE^7  
form1.N1.Checked:= not form1.N1.Checked ; z69u@  
form1.N2.Checked:= not form1.N2.Checked ; q%LjOPE V  
form1.N2.Enabled:=not form1.N2.Enabled; N\|BaZ%>|  
form1.N1.Enabled :=not form1.N1.Enabled; /DjsnU~3  
windows.RegisterHotKey(form1.Handle,444,0 ,windows.VK_F1   );//自动打一次 `<{LW>Lb  
hotkey_str:='F1 已经按下..'; \SoT^PW  
end; 8L+A&^qx  
end.
发表于 2019-5-6 12:55:20 | 显示全部楼层
oyjl2000 发表于 2009-12-2 18:25
//延时 2K4Xu9-i:b  
  //sleep(100); &  n* ga$Q  
  application.ProcessMessages; [kJ;Uxncz~  

有些错误啊 兄弟 可有最新的了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|玩家天地

GMT+8, 2019-6-18 23:48 , Processed in 0.051466 second(s), 16 queries , Gzip On, Xcache On.

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表