📄 findpas.pas
字号:
unit FindPas;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, ExtCtrls;
type
TFindForm = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
OpenDialog1: TOpenDialog;
Memo1: TMemo;
Memo2: TMemo;
OpenDialog2: TOpenDialog;
TabSheet2: TTabSheet;
Splitter1: TSplitter;
FindDialog1: TFindDialog;
Splitter2: TSplitter;
Panel3: TPanel;
Memo3: TMemo;
Panel4: TPanel;
Memo4: TMemo;
Panel5: TPanel;
Panel6: TPanel;
Panel2: TPanel;
Label2: TLabel;
Button1: TButton;
Edit2: TEdit;
CheckBox1: TCheckBox;
Image1: TImage;
Image2: TImage;
Button2: TButton;
Button3: TButton;
procedure GetFileName(Sender: TObject);
procedure GetDirName(Sender: TObject);
procedure PageControl1Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FindForm: TFindForm;
implementation
uses Xeduser;
{$R *.DFM}
procedure TFindForm.GetFileName(Sender: TObject);
begin
if not OpenDialog1.Execute then Exit;
// Edit1.Text := OpenDialog1.FileName;
end;
procedure TFindForm.GetDirName(Sender: TObject);
begin
// asd
end;
procedure TFindForm.PageControl1Change(Sender: TObject);
var
S: string;
begin
if PageControl1.ActivePageIndex = 2 then halt;
S := Copy(PageControl1.ActivePage.Caption, 1, 8);
if S[3] = 'A' then S[3] := 'F' else S[3] := 'R';
Button3.Caption := S;
end;
procedure TFindForm.FormCreate(Sender: TObject);
begin
PageControl1.ActivePageIndex := 0;
PageControl1Change(Self);
end;
procedure TFindForm.Button5Click(Sender: TObject);
begin
//aaaaaaaaa;
end;
function FileOpen1(const FileName: string; Mode: LongWord): Integer;
const
AccessMode: array[0..2] of LongWord = (
GENERIC_READ,
GENERIC_WRITE,
GENERIC_READ or GENERIC_WRITE);
ShareMode: array[0..4] of LongWord = (
0,
0,
FILE_SHARE_READ,
FILE_SHARE_WRITE,
FILE_SHARE_READ or FILE_SHARE_WRITE);
begin
Result := Integer(CreateFile(PChar(FileName), GENERIC_Write,
FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0));
end;
function EnumRes(H: Hinst; pType: PChar; pName: PChar; pBack: integer): Boolean;
var
R: HRSRC;
Res: HGlobal;
// S: String;
begin
// S := RT_STRING;halt;
// S := pName;
showmessage(inttoHex(h, 64));
R := FindResource(H, pName, pType);
if R = 0 then begin
TellME('No');
Exit;
end;
if R <> 0 then begin
Res := LoadResource(H, R);
FindForm.Memo1.Lines.Add(Inttostr(Res));
end;
Result := True;
end;
procedure TFindForm.Button3Click(Sender: TObject);
{var
h : Hinst;
// R: HRSRC;
P: PChar;
// RName: PChar;
begin
// h := LoadLibrary('D:\delphi\mydb\auto1.exe');
H := LoadModule
if h = 0 then halt;
// LoadResource(h, R);
showmessage(inttoHex(h, 64));
EnumResourceNames(H, RT_STRING, @EnumRes, 0);
//} var
// SZ,
m_hins: Hinst;
// RSRC: HRSRC;
// BMP: HBitmap;
// S: TCustomMemoryStream;
begin
//想提取扫雷程序中的位图资源,代码如下:
m_hIns := LoadLibraryEx('C:\Restorator\Restorator.exe', 0, LOAD_LIBRARY_AS_DATAFILE);
// if m_hIns = 0 then halt;
// Rsrc := FindResource(m_hIns,'TREEIMAGES',RT_BITMAP);
// BMP := LoadResource(m_hIns,Rsrc);
// Sz := SizeofResource(hInstance, Rsrc);
// Image2.Picture.Bitmap.Handle := BMP;
Image1.Picture.Bitmap.LoadFromResourceName(m_Hins, 'TREEIMAGES');
end;
procedure TFindForm.Button2Click(Sender: TObject);
begin
Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -