//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
#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 likeCodePudding 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, 80Try 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?