SynchCharts

0 Views
0 Downloads
0 Favorites
SynchCharts
#import "user32.dll"
  int PostMessageA(int hWnd,int Msg,int wParam,int lParam);
  int SetWindowTextA(int hWnd,string lpString);
  int GetWindowTextA(int hWnd,string lpString,int nMaxCount);
  int GetWindow(int hWnd,int uCmd);
  int GetParent( int hWnd );
  int GetDlgItem( int hDlg, int nIDDlgItem );
#import

#define WM_KEYDOWN 0x0100

#define GW_HWNDFIRST 0
#define GW_HWNDNEXT 2

#define VK_RETURN 0x0D
#define VK_ESCAPE 0x1B

#define PAUSE 100
#define STR_LENGTH 30

//Àêòèâèðóåò ñòðîêó Str â ñòðîêå áûñòðîé íàâèãàöèè hwnd-÷àðòà
// NB: Ïðè èçìåíåíèè ñèìâîëà èëè òàéìôðýéìà
// òðåáóåòñÿ îòñóòñòâèå çàïóùåííîãî ñêðèïòà íà hwnd-÷àðòå!
void ActivateString( int hwnd, string Str )
{
  static string StrTmp = "123456789012345678901234567890";
  
  hwnd = GetDlgItem(hwnd, 0x45A);
  GetWindowTextA(hwnd, StrTmp, STR_LENGTH);

  if (Str != StrTmp)  
  {
    SetWindowTextA(hwnd, Str);
    PostMessageA(hwnd, WM_KEYDOWN, VK_RETURN, 0);
  }
  
  return;
}

// Âîçâðàùàåò õýíäë ñëåäóþùåãî ÷àðòà çà hwnd-÷àðòîì
int NextChart( int hwnd ) 
{
  int handle;
  
  hwnd = GetParent(hwnd);
  handle = GetWindow(hwnd, GW_HWNDNEXT);
  
  if (handle == 0)
    handle = GetWindow(hwnd, GW_HWNDFIRST);
    
  hwnd = GetDlgItem(handle, 0xE900); 
  
  return(hwnd);
}

// Àêòèâèðóåò ñòðîêó Str â ñòðîêàõ áûñòðîé íàâèãàöèè
// âñåõ ãðàôèêîâ , êðîìå îñíîâíîãî.
// NB: Ïðè èçìåíåíèè ñèìâîëà èëè òàéìôðýéìà
// òðåáóåòñÿ îòñóòñòâèå çàïóùåííûõ ñêðèïòîâ!
void ChangeAllCharts( string Str, bool Init )
{
  int hwnd, hwnd_base = WindowHandle(Symbol(), Period());
  
  hwnd = NextChart(hwnd_base);
  
  while (hwnd != hwnd_base)
  {
    if (Init)
    {
      PostMessageA(hwnd, WM_KEYDOWN, VK_RETURN, 0);
      Sleep(PAUSE); // æäåì èíèöèàëèçàöèþ
      PostMessageA(GetDlgItem(hwnd, 0x45A), WM_KEYDOWN, VK_ESCAPE, 0);
    }
    else
      ActivateString(hwnd, Str);
      
    hwnd = NextChart(hwnd);
  }
  
  return;
}

void init()
{
  Comment("Script " + WindowExpertName() + " is executing!");
  
  ChangeAllCharts("", TRUE);

  return;  
}

void deinit()
{
  ChangeAllCharts("", FALSE);

  Comment("");
  
  return;
}

void start()
{
  while (!IsStopped())
  {
    RefreshRates(); // îáÿçàòåëüíî!
    ChangeAllCharts(TimeToStr(Time[WindowFirstVisibleBar()]), FALSE);
    
    Sleep(PAUSE);
  }
  
  return;
}

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---