By the way, if not sending F12 but code of 'A' key it works fine.
if (id == CHARTEVENT_KEYDOWN)
{
switch(int(lparam))
{
case 0x53: // 'S'
keybd_event(0x41, 0, 0, 0); // A 1th
keybd_event(0x41, 0, KEYEVENTF_KEYUP , 0);
keybd_event(0x41, 0, 0, 0); // A 2nd
keybd_event(0x41, 0, KEYEVENTF_KEYUP , 0);
keybd_event(0x41, 0, 0, 0); // A 3rd
keybd_event(0x41, 0, KEYEVENTF_KEYUP , 0);
keybd_event(0x41, 0, 0, 0); // A 4th
keybd_event(0x41, 0, KEYEVENTF_KEYUP , 0);
keybd_event(0x41, 0, 0, 0); // A 5th
keybd_event(0x41, 0, KEYEVENTF_KEYUP , 0);
break;
case 0x41:
Print("A");
default:
break;
}
}
By the way, if not sending F12 but code of 'A' key it works fine.
if (id == CHARTEVENT_KEYDOWN)
{
switch(int(lparam))
{
case 0x53: // 'S'
keybd_event(0x41, 0, 0, 0); // A 1th
keybd_event(0x41, 0, KEYEVENTF_KEYUP , 0);
keybd_event(0x41, 0, 0, 0); // A 2nd
keybd_event(0x41, 0, KEYEVENTF_KEYUP , 0);
keybd_event(0x41, 0, 0, 0); // A 3rd
keybd_event(0x41, 0, KEYEVENTF_KEYUP , 0);
keybd_event(0x41, 0, 0, 0); // A 4th
keybd_event(0x41, 0, KEYEVENTF_KEYUP , 0);
keybd_event(0x41, 0, 0, 0); // A 5th
keybd_event(0x41, 0, KEYEVENTF_KEYUP , 0);
break;
case 0x41:
Print("A");
default:
break;
}
}
Hello, no one can help to answer me? Is this the bug of mt4?
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
I wonder why it is not five.
I even tried to make a dll using Visual C++ in which calling SendInput Windows API and in mql code to call the dll function, however, I did not get expected result.
#import "user32.dll"
void keybd_event(int bVk, int bScan, int dwFlags,int dwExtraInfo);
#import
#define KEYEVENTF_KEYUP 0x0002 //--- key is released (not pressed)
void OnChartEvent(const int id, // Event identifier
const long& lparam, // Event parameter of long type
const double& dparam, // Event parameter of double type
const string& sparam) // Event parameter of string type
{
if (id == CHARTEVENT_KEYDOWN)
{
switch(int(lparam))
{
case 0x53: // 'S'
keybd_event(0x7B, 0, 0, 0); // F12 1th
keybd_event(0x7B, 0, KEYEVENTF_KEYUP , 0);
keybd_event(0x7B, 0, 0, 0); // F12 2nd
keybd_event(0x7B, 0, KEYEVENTF_KEYUP , 0);
keybd_event(0x7B, 0, 0, 0); // F12 3rd
keybd_event(0x7B, 0, KEYEVENTF_KEYUP , 0);
keybd_event(0x7B, 0, 0, 0); // F12 4th
keybd_event(0x7B, 0, KEYEVENTF_KEYUP , 0);
keybd_event(0x7B, 0, 0, 0); // F12 5th
keybd_event(0x7B, 0, KEYEVENTF_KEYUP , 0);
break;
default:
break;
}
}
}