⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 findwindowunit.pas

📁 冒险岛吸怪源码UCE的制作材料 用于冒险岛游戏的外挂
💻 PAS
字号:
unit FindWindowUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,CEFuncproc,ComCtrls, ExtCtrls;

type
  TFindWindow = class(TForm)
    btnOK: TButton;
    btnCancel: TButton;
    Scanvalue: TEdit;
    editStart: TEdit;
    EditStop: TEdit;
    labelType: TLabel;
    rbText: TRadioButton;
    rbArByte: TRadioButton;
    Label2: TLabel;
    Label3: TLabel;
    labelArray: TLabel;
    ProgressBar: TProgressBar;
    Timer1: TTimer;
    cbUnicode: TCheckBox;
    procedure btnOKClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    firstscan: boolean;
  end;

var
  FindWindow: TFindWindow;

implementation

{$R *.dfm}
uses MemorybrowserFormUnit;

procedure TFindWindow.btnOKClick(Sender: TObject);
var start,stop,temp: dword;
    templist: Tstringlist;
    cb: TCheckbox;
    valtype: integer;
begin
  try
    start:=StrToInt('$'+editStart.text);
    stop:=strtoint('$'+editstop.Text);
  except
    raise exception.Create('The specified range is invalid');
  end;

  if start>stop then
  begin
    temp:=start;
    start:=stop;
    stop:=temp;
  end;

  templist:=TStringlist.create;

  cb:=TCheckbox.create(self);
  cb.visible:=false;
  cb.checked:=true;
  cb.parent:=self;

  if rbText.checked then valtype:=7 else valtype:=8;
  if GetMemoryRangesAndScanValue2(start,stop,true,true,Exact_value,valtype,templist,scanvalue.text,'',rounded,1,true,progressbar,false,cbunicode.checked)>0 then
  begin
    //er is iets gevonden
    MemoryBrowser.memoryaddress:=strtoint('$'+templist.Strings[0]);
    MemoryBrowser.RefreshMB;
    modalresult:=mrok;
    findwindow.close;
  end else
  begin
    showmessage('Nothing found...');
    if not firstscan then modalresult:=mrcancel;
  end;

  templist.free;
  cb.free;
end;

procedure TFindWindow.FormShow(Sender: TObject);
begin
  progressbar.Position:=0;
  
  if firstscan then
  begin
    editstart.Text:=Inttohex(memorybrowser.memoryaddress,8);
    height:=175;
    progressbar.Top:=96;

    labelType.visible:=true;
    labelarray.visible:=true;
    rbtext.visible:=true;
    rbArByte.visible:=true;
    scanvalue.Visible:=true;
    btnOK.visible:=true;
    btnCancel.visible:=true;
    EditStop.visible:=true;
    editStart.visible:=true;
    label2.Visible:=true;
    label3.Visible:=true;

  end
  else
  begin
    clientheight:=progressbar.height+4;
    progressbar.top:=2;

    labelType.visible:=false;
    labelarray.visible:=false;
    rbtext.visible:=false;
    rbArByte.visible:=false;
    scanvalue.Visible:=false;
    btnOK.visible:=false;
    btnCancel.visible:=false;
    EditStop.visible:=false;
    editStart.visible:=false;
    label2.Visible:=false;
    label3.Visible:=false;
    timer1.enabled:=true; //bah, I wanted to do execute here but it seems thats not possible
  end;
end;

procedure TFindWindow.Timer1Timer(Sender: TObject);
begin
  timer1.enabled:=false;
  btnOK.click;
  close;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -