翻译Delphi to C++ Builder(100分)

  • 主题发起人 hdqself2008
  • 开始时间
H

hdqself2008

Unregistered / Unconfirmed
GUEST, unregistred user!
实现鼠标键盘动作的记录与回放
unit Unit1;

interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type

TForm1 = class(TForm)
Button1: TButton;

Button2: TButton;
Button3: TButton;

Edit1: TEdit;
Button4: TButton;

procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private

{ Private declarations }
public

{ Public declarations }
end;

var

Form1: TForm1;

EventArr:array[0..1000]of EVENTMSG;
EventLog:Integer;

PlayLog:Integer;
hHook,hPlay:Integer;
recOK:Integer;

canPlay:Integer;
bDelay:Bool;

implementation
{$R *.DFM}
Function PlayProc(iCode:Integer;wParam:wParam;lParam:lParam):LRESULT;stdcall;
begin


canPlay:=1;
Result:=0;

if iCode < 0 then
//必须将消息传递到消息链的下一个接受单元
Result := CallNextHookEx(hPlay,iCode,wParam,lParam)
else
if iCode = HC_SYSMODALON then

canPlay:=0

else
if iCode = HC_SYSMODALOFF then

canPlay:=1

else
if ((canPlay =1 )and(iCode=HC_GETNEXT)) then
begin

if bDelay then
begin

bDelay:=False;

Result:=50;
end;


pEventMSG(lParam)^:=EventArr[PlayLog];
end

else
if ((canPlay = 1)and(iCode = HC_SKIP))then
begin

bDelay := True;

PlayLog:=PlayLog+1;
end;


if PlayLog>=EventLog then
begin

UNHookWindowsHookEx(hPlay);
end;


end;

function HookProc(iCode:Integer;wParam:wParam;lParam:lParam):LRESULT;stdcall;
begin


recOK:=1;
Result:=0;


if iCode < 0 then

Result := CallNextHookEx(hHook,iCode,wParam,lParam)
else
if iCode = HC_SYSMODALON then

recOK:=0

else
if iCode = HC_SYSMODALOFF then

recOK:=1

else
if ((recOK>0) and (iCode = HC_ACTION)) then
begin

EventArr[EventLog]:=pEventMSG(lParam)^;
EventLog:=EventLog+1;

if EventLog>=1000 then
begin

UnHookWindowsHookEx(hHook);
end;


end;

end;



procedure TForm1.FormCreate(Sender: TObject);
begin


Button1.Caption:='纪录';
Button2.Caption:='停止';
Button3.Caption:='回放';
Button4.Caption:='范例';
Button2.Enabled:=False;
Button3.Enabled:=False;
end;
 
帮忙顶下!
 
接受答案了.
 

Similar threads

顶部