Automatisierung mit Abfangen von Tasten und Mausklicks. - Seite 2

 
Avals >> :

Die Funktionen "int GetLastKeyLP()" und "int GetLastMouseLP()", die in derselben Bibliothek verfügbar sind, sollten dabei helfen. Und verwenden Sie das Ergebnis in Funktionen int SendMessageA (int hWnd, int Msg, int wParam, int lParam); int PostMessageA (int hWnd, int Msg, int wParam, int lParam);

Mein Terminal stürzt ständig ab, wenn es aufgerufen wird.


int hwnd = WindowHandle(Symbol(),Zeitraum());
SendMessageA(hwnd, WM_COMMAND, 514, 0);


и


int hwnd = WindowHandle(Symbol(),Zeitraum());
PostMessageA(hwnd, WM_COMMAND, 514, 0);


Obwohl das laufende Skript diesen Code ausgibt, wenn ich die Schaltfläche "Strategietester" in der Symbolleiste drücke


2008.11.14 15:26:58 shablon EURUSD,Weekly: Maus Code=513 von Fenster EURUSD,Weekly

 

514 Was ist das?

#import "user32.dll"
   int GetParent (int hWnd);
   int PostMessageA (int hWnd, int Msg, int wParam, int lParam);
#import
//+------------------------------------------------------------------+

   int hwnd = WindowHandle(Symbol(), NULL);

   while (!IsStopped())   {
     hwnd = GetParent( hwnd);
     if ( hwnd==0) break;
     int hwnd_parent = hwnd;   }

   PostMessageA( hwnd_parent, WM_COMMAND,33315,0)


Probieren Sie so etwas aus.

 
sabluk >> :

514 Was ist das?


Der vom Skript shablon zurückgegebene Code.

Um beim Thema zu bleiben: Wie drückt man jetzt den Startknopf?

Nur wenn Sie nicht genau codieren können, wie man es drückt, aber ich möchte das Prinzip wissen, wie dieser Wert herausgezogen wird.

 

Ich habe Ihnen einen Link zu einer Liste von Befehlen gegeben

Sie können es selbst mit einem Programm wie Winspector Spy erkennen

 
HIDDEN >> :

Der vom Skript shablon zurückgegebene Code.

Um beim Thema zu bleiben: Wie drückt man jetzt den Startknopf?

Nur wenn Sie nicht genau kodieren können, wie man schiebt, sondern das Prinzip kennen wollen, wie dieser Wert herausgezogen wird.

Ich empfehle das Dienstprogramm Spy++, das Teil der Visual Studio-Distribution ist.

 
Ilnur >> :

Ich empfehle Ihnen das Dienstprogramm Spy++, das Teil des Visual Studio Distribution Kit ist.

Ich habe das Programm gestartet, es ausprobiert und nichts verstanden. Ich habe bereits auf Schaltflächen mit einem bekannten Code geprüft, das Programm zeigt ihn nicht an.

Oder ich mache etwas falsch. Wenn Sie Erfahrung mit dem Programm haben, machen Sie einen Screenshot davon, wie es die Code-Schaltfläche vom Terminal ausgibt. Ich kann den Code nicht finden.


Dies sind zum Beispiel die Codes, wie man mit Hilfe eines Programms herauskommt


33018 - Umschalten auf "Balken"-Ansicht
33019 - Umschalten auf die Ansicht "Candlestick".
33022 - Umschalten auf "Linien"-Darstellung

 

Das korrigierte Skript funktioniert folgendermaßen

#import "user32.dll"
   int GetParent (int hWnd);
   int PostMessageA (int hWnd, int Msg, int wParam, int lParam);
#import
#define WM_COMMAND       0x0111
//+------------------------------------------------------------------+
int start()
{
   int hwnd = WindowHandle(Symbol(), NULL);

   while (!IsStopped())   {
     hwnd = GetParent( hwnd);
     if ( hwnd==0) break;
     int hwnd_parent = hwnd;   }

   PostMessageA( hwnd_parent, WM_COMMAND,33315,0);
   return(0);
}
//+------------------------------------------------------------------+
 
versuchen Sie andere Codes aus der Liste in diesem Zweig anstelle von 33315
 
sabluk >> :
Versuchen Sie andere Codes aus der Liste in der Filiale anstelle von 33315

Ich bin nicht daran interessiert, die Codes zu überprüfen, sondern wie man die Codes herausfindet. Ich muss das Prüfgerät anrufen und die Starttaste auf dem Prüfgerät drücken und dann die Tasten drücken. Um all dies zu drücken, muss ich wissen, wie ich diese Codes herausfinden kann.


>> und dem Code, den Sie mir gegeben haben, habe ich es selbst repariert.

 

Es ist mir nur nicht ganz klar, wie man in diesem Thread zu einem Testfenster wechselt, d.h. den Handle des Fensters herausfindet und dann die Schleife ausführt. Aber das Problem ist, dass dieser Ansatz nicht sehr gut ist, das Terminal stürzt oft ab.

Grund der Beschwerde: