Home > Back-end >  Excuse me each warrior, keyboard mouse action record and playback, how to control the playback speed
Excuse me each warrior, keyboard mouse action record and playback, how to control the playback speed

Time:10-22

The source code is as follows:
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
#include
# pragma hdrstop

# include "Unit1. H"
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
# pragma package (smart_init)
# pragma resource "*. DFM
"TForm1 * Form1;
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Const MaxEventCount=1000;
EVENTMSG EventArr [MaxEventCount];
Int EventLog, PlayLog recOK canPlay;
HHOOK HHOOK hPlay;
Bool bDelay;
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
LRESULT __stdcall PlayProc (int iCode, WPARAM WPARAM, LPARAM LPARAM)
{
LRESULT Result=0;
CanPlay=1;
If (iCode<0)
Result=CallNextHookEx (hPlay, iCode wParam, lParam);
Else if (iCode==HC_SYSMODALOFF)
CanPlay=1;
Else if (canPlay==1 & amp; & ICode==HC_GETNEXT)
{
If (bDelay)
{
BDelay=false;
Result=50;//
}
* (lParam) (PEventMsg)=EventArr [PlayLog];//pEventMsg (lParam) ^ :=EventArr [PlayLog];
}
Else if (canPlay==1 & amp; & ICode==HC_SKIP)
{
BDelay=True;
PlayLog++;
}
If (PlayLog>=EventLog)
UnhookWindowsHookEx (hPlay);
Return the Result.
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
LRESULT __stdcall HookProc (int iCode, WPARAM WPARAM, LPARAM LPARAM)
{
LRESULT Result=0;
RecOK=1;
If (iCode<0)
Result=CallNextHookEx (hHook, iCode wParam, lParam);
Else if (iCode==HC_SYSMODALON)
RecOK=0;
Else if (iCode==HC_SYSMODALOFF)
RecOK=1;
Else if (recOK> 0 & amp; & ICode==HC_ACTION)
{
EventArr [EventLog++]=* (PEventMsg lParam);//EventArr [EventLog++] :=pEventMSG (lParam) ^;
If (EventLog>=MaxEventCount)
UnhookWindowsHookEx (hHook);
}
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
__fastcall TForm1: : TForm1 (TComponent * Owner)
: TForm (the Owner)
{
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
//record
Void __fastcall TForm1: : Button1Click (TObject * Sender)
{
//set up the keyboard mouse operation record message chain
EventLog=0;
HHook=SetWindowsHookEx (WH_JOURNALRECORD, HOOKPROC HOOKPROC, HInstance, 0).
Button2 - & gt; Enabled=true;
Button3 - & gt; Enabled=false;
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
//pause
Void __fastcall TForm1: : Button2Click (TObject * Sender)
{
UnhookWindowsHookEx (hHook);
HHook=NULL;
For the - & gt; Enabled=true;
Button2 - & gt; Enabled=false;
Button3 - & gt; Enabled=true;
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
//playback
Void __fastcall TForm1: : Button3Click (TObject * Sender)
{
//set up the keyboard mouse operation message replay chain
PlayLog=0;
HPlay=SetWindowsHookEx (WH_JOURNALPLAYBACK, HOOKPROC PlayProc, HInstance, 0).
Button3 - & gt; Enabled=false;
}

CodePudding user response:

I want to make it any faster than the speed of the recording playback,

CodePudding user response:

This is a "deep under the Delphi Windows core programming" source,
You combine the Windows in the source NT2000 change gear case try,

CodePudding user response:

Looked at, the same, that is, the Delphi source code into a c + +, variable names like

CodePudding user response:

Sololie, could you please help me have a look at, DP I do not understand, didn't also the source code,,,,

CodePudding user response:

If (bDelay)
{
BDelay=false;
Result=50;//this can control the postback speed, the greater the negative number, the faster the vice slower
}

CodePudding user response:

1, 0, 5, 50, 80
Try it yourself between these values
I tried, the speed seems to be able to control very accurate, can be quickly, or normal speed, and slowly slowly slowly slowly

CodePudding user response:

I also tried in the morning, the answer is the same with you, there is no other way?
  • Related