forked from rosh/MQL5Book
48 lines
1.9 KiB
MQL5
48 lines
1.9 KiB
MQL5
//+------------------------------------------------------------------+
| |||
//| LibClipboard.mq5 |
| |||
//| Copyright 2021-2022, MetaQuotes Ltd. |
| |||
//| https://www.mql5.com |
| |||
//+------------------------------------------------------------------+
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| DLL-related permissions are required! |
| |||
//| Clipboard reading is the task implemented by DLLs. |
| |||
//+------------------------------------------------------------------+
| |||
#include <WinApi/winuser.mqh>
| |||
#include <WinApi/winbase.mqh>
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| We need this define and import for accessing Windows clipboard |
| |||
//+------------------------------------------------------------------+
| |||
#define CF_UNICODETEXT 13 // one of standard clipboard formats
| |||
#import "kernel32.dll"
| |||
string lstrcatW(PVOID string1, const string string2);
| |||
#import
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| Example function to use DLL for reading Windows clipboard |
| |||
//+------------------------------------------------------------------+
| |||
void ReadClipboard()
| |||
{
| |||
if(OpenClipboard(NULL))
| |||
{
| |||
HANDLE h = GetClipboardData(CF_UNICODETEXT);
| |||
PVOID p = GlobalLock(h);
| |||
if(p != 0)
| |||
{
| |||
const string text = lstrcatW(p, "");
| |||
Print("Clipboard: ", text);
| |||
GlobalUnlock(h);
| |||
}
| |||
CloseClipboard();
| |||
}
| |||
}
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| Script program start function |
| |||
//+------------------------------------------------------------------+
| |||
void OnStart()
| |||
{
| |||
ReadClipboard();
| |||
}
| |||
//+------------------------------------------------------------------+
|