Tenho-o como função na minha EA, aqui está o início do código
esta é a própria função
O resto da EA funciona bem, as variáveis que estão na função não são utilizadas em qualquer outro lugar do código. Terminal crashes on lineSetClipboardData( CF_UNICODETEXT, hMem );// Passar a memória com string para o buffer
void OutClipboard()
{
uint hwnd = (uint)ChartGetInteger( 0, CHART_WINDOW_HANDLE );
int strSize = StringLen( text ) * 2 + 2; // Получаем размер строки в байтахif( OpenClipboard( hwnd ) ) // Открываем буфер
{
EmptyClipboard(); // Очищаем буферuint hMem = GlobalAlloc( GHND, strSize ); // Выделяем памятьuint pMem = GlobalLock( hMem ); // Получаем адрес выделенной памяти
memcpy( pMem, text, strSize ); // Копируем строку в память
GlobalUnlock( hMem );
SetClipboardData( CF_UNICODETEXT, hMem ); // Передаём память со строкой в буфер
CloseClipboard(); // Закрываем буфер
}
}
O resto da EA funciona bem, as variáveis que estão na função não são utilizadas em qualquer outro lugar do código. Terminal crashes on lineSetClipboardData( CF_UNICODETEXT, hMem );// Passar a memória com string para o buffer
//+------------------------------------------------------------------+//| Clipboard.mq4 |//| ПавелИванович(api) |//| p231970@hotmail.com |//| Перенос на MQL5 и доработка unicode - Сергеев Алексей (sergeev) |//| profy.mql@gmail.com |//+------------------------------------------------------------------+#property version"1.00"#property description"Getting contents of the clipboard"#import "user32.dll"bool OpenClipboard(int hwnd);
int GetClipboardData(int uFormat);
bool CloseClipboard();
int GetAncestor(long hWnd,int gaFlags);
int GetAncestor(int hWnd,int gaFlags);
#import "kernel32.dll"int GlobalLock(int hMem);
bool GlobalUnlock(int hMem);
string lstrcatW(int dst,string src);
#import
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+intOnStart()
{
int hMain;
string clip="";
//---if(_IsX64)
hMain=GetAncestor(ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE),2);
else
hMain=GetAncestor((int)ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE),2);
//---if(OpenClipboard(hMain))
{
int hglb=GetClipboardData(1/*CF_TEXT*/);
if(hglb!=0)
{
int lptstr=GlobalLock(hglb);
if(lptstr!=0) { clip=lstrcatW(lptstr,""); GlobalUnlock(hglb); }
}
CloseClipboard();
}
// translate ANSI to UNICODEushort chW; uchar chA; string rez;
for(int i=0; i<StringLen(clip); i++)
{
chW=StringGetCharacter(clip, i);
chA=uchar(chW&255); rez=rez+CharToString(chA);
chA=uchar(chW>>8&255); rez=rez+CharToString(chA);
}
MessageBox("Clipboard: \n"+rez,"Clipboard");
return(0);
}
//+------------------------------------------------------------------+
Encontrei este guião, que supostamente lê o buffer e produz o valor na janela terminal - também não funciona.
Embora não mate o terminal, também não produz nada na janela. É um mistério com buffer, vou limitar a saída de dados a Alerta por agora, posso copiar dados a partir dele com ctrl+c, embora quisesse evitar acções "manuais".
Esse exemplo foi para o MT4, pelo que não teve em conta a taxa de bits.
Aqui está uma para todas as plataformas:
Suspeitei da capacidade, especialmente quando olhei para o segundo guião a ler o buffer. Essa é a única forma de o resolver, teria descoberto pelo menos um mês mais tarde))). Muito obrigado, poupou-me muito tempo).
Por favor, ajude-me a reescrever o código no MT5 - Não sou bom em encomendas :(
Ao compilar os erros de código:
'SELECT_BY_POS' - identificador não declarado KamikadzeStatistics.mqh 257 33
'MODE_HISTÓRIA' - identificador não declarado KamikadzeStatistics.mqh 257 47
OrderSelect' - contagem de parâmetros errados KamikadzeStatistics.mqh 257 13
'OrderType' - função não definida KamikadzeStatistics.mqh 259 60
'OrderCloseTime' - função não definida KamikadzeStatistics.mqh 261 19
OrderProfit' - função não definida KamikadzeStatistics.mqh 265 42
O que é isto? Não sou um bom juiz da MQL4. Se me disserem o que preciso, poderei escrever tudo na MQL5. Tem algo a ver com o cálculo do lucro/perda histórica?
Obrigado.
Apenas registado, ainda não sabe como funciona o fórum.
Não percebo WinAPI, o que é que se passa aqui?
deixem-me ver os vossos esforços sob a forma de um guião
Tenho-o como função na minha EA, aqui está o início do código
esta é a própria função
O resto da EA funciona bem, as variáveis que estão na função não são utilizadas em qualquer outro lugar do código.
Terminal crashes on lineSetClipboardData( CF_UNICODETEXT, hMem );// Passar a memória com string para o buffer
Já percebi, estou corrigido).
deixem-me ver os vossos esforços como um guião
Tenho-o como função na minha EA, aqui está o início do código
esta é a própria função
O resto da EA funciona bem, as variáveis que estão na função não são utilizadas em qualquer outro lugar do código.
Terminal crashes on lineSetClipboardData( CF_UNICODETEXT, hMem );// Passar a memória com string para o buffer
Encontrei este guião, que supostamente lê o buffer e produz o valor na janela terminal - também não funciona.
Embora não mate o terminal, também não produz nada na janela.
É um mistério com buffer, vou limitar a saída de dados a Alerta por agora, posso copiar dados a partir dele com ctrl+c, embora quisesse evitar acções "manuais".
Esse exemplo foi para o MT4, pelo que não teve em conta a capacidade de dígitos.
Aqui está uma para todas as plataformas:
Esse exemplo foi para o MT4, pelo que não teve em conta a taxa de bits.
Aqui está uma para todas as plataformas:
Suspeitei da capacidade, especialmente quando olhei para o segundo guião a ler o buffer.
Essa é a única forma de o resolver, teria descoberto pelo menos um mês mais tarde))).
Muito obrigado, poupou-me muito tempo).
Integrá-lo imediatamente na EA)
Por favor, ajude-me a reescrever o código no MT5 - Não sou bom em encomendas :(
Ao compilar os erros de código:
'SELECT_BY_POS' - identificador não declarado KamikadzeStatistics.mqh 257 33
'MODE_HISTÓRIA' - identificador não declarado KamikadzeStatistics.mqh 257 47
OrderSelect' - contagem de parâmetros errados KamikadzeStatistics.mqh 257 13
'OrderType' - função não definida KamikadzeStatistics.mqh 259 60
'OrderCloseTime' - função não definida KamikadzeStatistics.mqh 261 19
OrderProfit' - função não definida KamikadzeStatistics.mqh 265 42
Por favor, ajude-me a reescrever o código no MT5 - Não sou bom em encomendas :(
Ao compilar os erros de código:
'SELECT_BY_POS' - identificador não declarado KamikadzeStatistics.mqh 257 33
'MODE_HISTÓRIA' - identificador não declarado KamikadzeStatistics.mqh 257 47
OrderSelect' - contagem de parâmetros errados KamikadzeStatistics.mqh 257 13
'OrderType' - função não definida KamikadzeStatistics.mqh 259 60
'OrderCloseTime' - função não definida KamikadzeStatistics.mqh 261 19
OrderProfit' - função não definida KamikadzeStatistics.mqh 265 42
O que é isto? Não sou um bom juiz da MQL4. Se me disserem o que preciso, poderei escrever tudo na MQL5.
Tem algo a ver com o cálculo do lucro/perda histórica?