Ich habe es als eine Funktion in meinem EA, hier ist der Anfang des Codes
Dies ist die eigentliche Funktion
Der Rest des EA funktioniert gut, die Variablen in der Funktion werden nirgendwo anders im Code verwendet. Terminal stürzt in ZeileSetClipboardData( CF_UNICODETEXT, hMem );// Übergabe von Speicher mit String an den Puffer
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(); // Закрываем буфер
}
}
Der Rest des EA funktioniert gut, die Variablen in der Funktion werden nirgendwo anders im Code verwendet. Terminal stürzt in ZeileSetClipboardData( CF_UNICODETEXT, hMem );// Übergabe von Speicher mit String an den Puffer
//+------------------------------------------------------------------+//| 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);
}
//+------------------------------------------------------------------+
Ich habe dieses Skript gefunden, das angeblich den Puffer liest und den Wert im Terminalfenster ausgibt - es funktioniert auch nicht.
Es beendet zwar nicht das Terminal, aber es gibt auch nichts in dem Fenster aus. Das mit dem Puffer ist ein Rätsel, ich werde die Ausgabe von Daten an Alert vorerst beschränken, ich kann Daten mit ctrl+c daraus kopieren, obwohl ich "manuelle" Aktionen vermeiden wollte.
Dieses Beispiel war für MT4, also ohne Berücksichtigung der Ziffernkapazität.
Hier ist eine für alle Plattformen:
Ich wurde misstrauisch, was die Kapazität angeht, vor allem, als ich mir das zweite Skript ansah, das den Puffer liest. Das ist die einzige Möglichkeit, das Problem zu beheben, das hätte ich mindestens einen Monat später herausgefunden). Vielen Dank, Sie haben mir eine Menge Zeit erspart).
'OrderType' - Funktion nicht definiert KamikadzeStatistics.mqh 259 60
'OrderCloseTime' - Funktion nicht definiert KamikadzeStatistics.mqh 261 19
'OrderProfit' - Funktion nicht definiert KamikadzeStatistics.mqh 265 42
Was ist das? Ich bin kein guter Kenner von MQL4. Wenn Sie mir sagen, was ich brauche, kann ich alles in MQL5 schreiben. Hat es etwas mit der Gewinn-/Verlustberechnung in der Vergangenheit zu tun?
Ich danke Ihnen.
Habe mich gerade registriert, weiß noch nicht, wie das Forum funktioniert.
Ich verstehe die WinAPI nicht, was ist hier los?
Lassen Sie mich Ihre Bemühungen in Form eines Drehbuchs sehen
Ich habe es als eine Funktion in meinem EA, hier ist der Anfang des Codes
Dies ist die eigentliche Funktion
Der Rest des EA funktioniert gut, die Variablen in der Funktion werden nirgendwo anders im Code verwendet.
Terminal stürzt in ZeileSetClipboardData( CF_UNICODETEXT, hMem );// Übergabe von Speicher mit String an den Puffer
Verstehe, ich korrigiere mich.)
Lassen Sie mich Ihre Bemühungen als Skript sehen
Ich habe es als eine Funktion in meinem EA, hier ist der Anfang des Codes
Dies ist die eigentliche Funktion
Der Rest des EA funktioniert gut, die Variablen in der Funktion werden nirgendwo anders im Code verwendet.
Terminal stürzt in ZeileSetClipboardData( CF_UNICODETEXT, hMem );// Übergabe von Speicher mit String an den Puffer
Ich habe dieses Skript gefunden, das angeblich den Puffer liest und den Wert im Terminalfenster ausgibt - es funktioniert auch nicht.
Es beendet zwar nicht das Terminal, aber es gibt auch nichts in dem Fenster aus.
Das mit dem Puffer ist ein Rätsel, ich werde die Ausgabe von Daten an Alert vorerst beschränken, ich kann Daten mit ctrl+c daraus kopieren, obwohl ich "manuelle" Aktionen vermeiden wollte.
Dieses Beispiel war für MT4, also ohne Berücksichtigung der Ziffernkapazität.
Hier ist eine für alle Plattformen:
Dieses Beispiel war für MT4, also ohne Berücksichtigung der Ziffernkapazität.
Hier ist eine für alle Plattformen:
Ich wurde misstrauisch, was die Kapazität angeht, vor allem, als ich mir das zweite Skript ansah, das den Puffer liest.
Das ist die einzige Möglichkeit, das Problem zu beheben, das hätte ich mindestens einen Monat später herausgefunden).
Vielen Dank, Sie haben mir eine Menge Zeit erspart).
Unmittelbar in EA integrieren)
Bitte helfen Sie mir, den Code auf MT5 umzuschreiben - ich bin nicht gut in Bestellungen :(
Beim Kompilieren des Codes treten Fehler auf:
'SELECT_BY_POS' - nicht deklarierter Bezeichner KamikadzeStatistics.mqh 257 33
MODE_HISTORY' - nicht deklarierter Bezeichner KamikadzeStatistics.mqh 257 47
'OrderSelect' - falsche Parameteranzahl KamikadzeStatistics.mqh 257 13
'OrderType' - Funktion nicht definiert KamikadzeStatistics.mqh 259 60
'OrderCloseTime' - Funktion nicht definiert KamikadzeStatistics.mqh 261 19
'OrderProfit' - Funktion nicht definiert KamikadzeStatistics.mqh 265 42
Bitte helfen Sie mir, den Code auf MT5 umzuschreiben - ich bin nicht gut in Bestellungen :(
Beim Kompilieren des Codes treten Fehler auf:
'SELECT_BY_POS' - nicht deklarierter Bezeichner KamikadzeStatistics.mqh 257 33
MODE_HISTORY' - nicht deklarierter Bezeichner KamikadzeStatistics.mqh 257 47
'OrderSelect' - falsche Parameteranzahl KamikadzeStatistics.mqh 257 13
'OrderType' - Funktion nicht definiert KamikadzeStatistics.mqh 259 60
'OrderCloseTime' - Funktion nicht definiert KamikadzeStatistics.mqh 261 19
'OrderProfit' - Funktion nicht definiert KamikadzeStatistics.mqh 265 42
Was ist das? Ich bin kein guter Kenner von MQL4. Wenn Sie mir sagen, was ich brauche, kann ich alles in MQL5 schreiben.
Hat es etwas mit der Gewinn-/Verlustberechnung in der Vergangenheit zu tun?