Pozycja okna skryptu - zmiana punktu początkowego
Strona 1 z 3 123 OstatniOstatni
Pokaż wyniki od 1 do 10 z 23

Wątek: Pozycja okna skryptu - zmiana punktu początkowego

  1. #1
    Witam, używam skryptu easyorder firmy sangmane do handlu, który jest niesamowity :-)

    czy ktoś może mi pomóc zmienić pozycję, w której okno będzie wyświetlane po starcie?

    Chcę go w prawym rogu
    Poziomy 3390 pikseli od lewej strony
    Pionowe 140 pikseli od góry


    Wstawiony kod # własność praw autorskich Copyright © 2011, sangmane. # link własności # 91; [email protected]#93; [email protected]#91;email # 93; #import EasyOrder.dll int EasyOrder (int hwnd); int start () {ciąg obj; int i; int hwnd = WindowHandle (Symbol (), 0); if (hwnd == 0) {return (0); } int ret = EasyOrder (hwnd); if (retlt; 0) {Alert (funkcja Dll nie powiodła się!); return (0); } if (ret == 1) {ModifyOrder (); } else {for (i = ObjectsTotal () - 1; igt; = 0; i--) {obj = ObjectName (i); if (StringFind (obj, EASYORDER, 0) gt; = 0) ObjectDelete (obj); }} InitLines (); return (0); }

  2. #2
    czy ktoś może mi pokazać samouczek? dzięki chłopaki

  3. #3
    Cześć, nie znam tego biblioteki EasyOrder. Jeśli rozumiem, tworzy własne okno, które z pewnością jest dzieckiem okna (hwnd), które przekazujesz jako parametr. Jeśli więc nie masz uchwytu tego okna potomnego utworzonego przez EasyOrder, musisz go znaleźć samemu Bez wchodzenia w szczegóły, spróbuj zacząć od tych funkcji Win32, które będziesz musiał zaimportować:: Wstawiony kod GetWindow (hwnd, GW_CHILD); i BOOL WINAPI MoveWindow (_In_ HWND hWnd, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_ BOOL bRepaint);

  4. #4
    Oto oryginalny kod: Wstawiony kod # własność praw autorskich Copyright © 2011, sangmane. #property link [email protected] #import EasyOrder.dll int EasyOrder (int hwnd); int start () {ciąg obj; int i; int hwnd = WindowHandle (Symbol (), 0); if (hwnd == 0) {return (0); } int ret = EasyOrder (hwnd); if (retlt; 0) {Alert (funkcja Dll nie powiodła się!); return (0); } if (ret == 1) {ModifyOrder (); } else {for (i = ObjectsTotal () - 1; igt; = 0; i--) {obj = ObjectName (i); if (StringFind (obj, EASYORDER, 0) gt; = 0) ObjectDelete (obj); }} InitLines (); return (0); }/ ---------------------------------------------- -------------------- void InitLines () {int i, pos, ticket; bool bdelete; ciąg obj; for (i = ObjectsTotal () - 1; igt; = 0; i--) {obj = ObjectName (i); if (StringFind (obj, EASYORDER_MOD) gt; = 0) {bdelete = True; pos = StringFind (obj, #, 1); jeśli (poslt; 0) kontynuuj; ticket = StrToDouble (StringSubstr (obj, pos 1, StringLen (obj) -pos-1)); if (OrderSelect (ticket, SELECT_BY_TICKET)) {if (OrderCloseTime () == 0) bdelete = false; } if (bdelete) ObjectDelete (obj); }} double sl, tp; for (i = 0; ilt; OrdersTotal (); i ) {OrderSelect (i, SELECT_BY_POS); if (OrderSymbol () == Symbol ()) {ticket = OrderTicket (); obj = EASYORDER_MOD_SL _ # ticket; sl = OrderStopLoss (); tp = OrderTakeProfit (); if (sl == 0) sl = OrderOpenPrice (); if (tp == 0) tp = OrderOpenPrice (); if (ObjectFind (obj) gt; = 0) ObjectMove (obj, 0, Time # 91; 0 # 93;, sl); else DrawLine (SL, bilet, sl); obj = EASYORDER_MOD_TP _ # ticket; if (ObjectFind (obj) gt; = 0) ObjectMove (obj, 0, Time # 91; 0 # 93;, tp); else DrawLine (TP, bilet, tp); if (OrderType () gt; OP_SELL) {obj = EASYORDER_MOD_PRICE _ # bilet; if (ObjectFind (obj) gt; = 0) ObjectMove (obj, 0, Time # 91; 0 # 93;, OrderOpenPrice ()); inaczej DrawLine (PRICE, ticket, OrderOpenPrice ()); }}}} void ModifyOrder () {string obj; int i, bilet; double sl, price, tp; double osl, otp; for (i = 0; ilt; OrdersTotal (); i ) {OrderSelect (i, SELECT_BY_POS); if (OrderSymbol () == Symbol ()) {ticket = OrderTicket (); sl = 0; cena = 0; tp = 0; obj = EASYORDER_MOD_SL _ # ticket; osl = OrderStopLoss (); if (osl == 0) osl = OrderOpenPrice (); otp = OrderStopLoss (); if (otp == 0) otp = OrderOpenPrice (); if (ObjectFind (obj) gt; = 0) {if (MathAbs (ObjectGet (obj, OBJPROP_PRICE1) -osl) gt; Point) sl = ObjectGet (obj, OBJPROP_PRICE1); } obj= Bilet EASYORDER_MOD_TP _ # ; if (ObjectFind (obj) gt; = 0) {if (MathAbs (ObjectGet (obj, OBJPROP_PRICE1) -otp) gt; Point) tp = ObjectGet (obj, OBJPROP_PRICE1); } if (OrderType () gt; OP_SELL) {obj = EASYORDER_MOD_PRICE _ # bilet; if (ObjectFind (obj) gt; = 0) {if (MathAbs (ObjectGet (obj, OBJPROP_PRICE1) -OrderOpenPrice ()) gt; Point) price = ObjectGet (obj, OBJPROP_PRICE1); }} if (sl tp pricegt; 0) {if (sl == 0) sl = OrderStopLoss (); if (tp == 0) tp = OrderTakeProfit (); if (price == 0) price = OrderOpenPrice (); OrderModify (bilet, cena, sl, tp, 0, CLR_NONE); }}}} void DrawLine (typ łańcucha, int bilet, podwójny poziom) {ciąg obj = EASYORDER_MOD_ typ _ # bilet; kolor clr = czerwony; if (type == PRICE) clr = LimeGreen;/else if (type == TP) clr = Blue; ObjectCreate (obj, OBJ_HLINE, 0, Time # 91; 0 # 93;, level, 0,0); ObjectSet (obj, OBJPROP_COLOR, clr); ObjectSet (obj, OBJPROP_STYLE, STYLE_DASHDOT); } Kiedy wstawię kod, pokażą mi 2 błędy.

  5. #5
    Czy możesz opublikować zrzut ekranu tego okna EasyOrder na ekranie?

  6. #6
    Oczywiście, to jest miejsce, w którym okno zostanie wyświetlone po zastosowaniu skryptu na wykresie, chcę, aby znajdowało się ono w innym miejscu X = 3390, Y = 140 (rozdzielczość dwuekranowa) Skrypt zawiera dane .dll, jeśli jest to ważne

  7. #7
    Ok, oto jak iść. 1. zacznij od oryginalnego skryptu. Usuń to, co dodałeś wcześniej. 2. Dodaj następujący wiersz na górze pliku. Wstawiony kod #include lt; WinUser32.mqhgt; 3. Po utworzeniu łatwego zamówienia i sprawdzeniu wartości dodaj dwa wywołania, jak pokazano poniżej: Wstawiony kod/Naklej te linie do skryptu: int ret = EasyOrder (hwnd); if (retlt; 0) {Alert (funkcja Dll nie powiodła się!); return (0); }/i dodaj poniższe wiersze:/Pobiera uchwyt okna okna Easy Order int hWnd = FindWindowW (NULL, Easy Order); if (hWnd! = NULL) {SetWindowPos (hWnd, 0, 3390, 140, 0, 0, 1); } Myślę, że to powinno zadziałać.

  8. #8
    pozycja okna się nie zmieniła

  9. #9
    Mogę ci pomóc, ale potrzebuję twojego kodu i tej biblioteki DLL.

  10. #10

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Używamy cookies
Używamy cookies, aby jak najlepiej dostosować witrynę do Twoich potrzeb. Kontynuowanie przeglądania tej strony, oznacza zgodę na używanie plików cookies. Aby uzyskać więcej informacji zapoznaj się z naszą Polityką Prywatności.