//+------------------------------------------------------------------+
#property copyright "Copyright 2025, Ve"
#property link "kupiscript@yandex.ru"
#property version "1.00"
#property strict
#define LVM_GETITEMCOUNT 0x1004
#define LVIF_TEXT 0x0001
#define LVM_GETITEMTEXTA 0x102D
#define LVM_GETITEMA 0x1005
#import "user32.dll"
int FindWindowW(string a0, string a1);
int FindWindowExW(int hWndParent,int hWndChildAfter,string lpszClass,string lpszWindow);
int SendMessageA(int hWnd,int Msg,int wParam,int lParam);
int SendMessageW(int hWnd,int Msg,int wParam,int lParam);
int CharPrevW(char &lpszStart[], char &lpszCurrent[]); // используем для получения адреса строки
int CharPrevW(int &lpszStart[],int &lpszCurrent[]); // используем для получения адреса массива целых чисел
#import
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
Alert("AAA");
Alert("BBB");
Alert("CCC");
int ha=0, eCount=0;
do
{
ha=FindWindowW("#32770", "Алерт");
eCount++;
if(eCount>100) return;
Sleep(100);
}
while(ha==0);
int ht=FindWindowExW(ha,0,"SysListView32","List1");
char ch[540];
for(int i=0; i<540; i++) ch[i]=0x000;
int arr[9];
arr[0]=LVIF_TEXT; //маска, какие из оставшихся полей должны быть заполнены
arr[1]=0; //индекс элемента
arr[2]=1; //дополнительный индекс (колонка)
arr[3]=0; //текущее состояние атрибутов
arr[4]=0; //новое задаваемое состояние атрибутов
arr[5]=CharPrevW(ch,ch); //текст(указатель на строку) элемента
arr[6]=128; //размер буфера на который указывает pszText
arr[7]=0; //индекс значка в списке изображений
arr[8]=0; //32-битное значение, ассоциируемое с записью
int LVITEM_addr=CharPrevW(arr,arr);
int ItemsCount = SendMessageA(ht, LVM_GETITEMCOUNT, 0, 0);
int hs;
string stu;
for (int i = 0; i < ItemsCount; i++)
{
arr[1]=i;
for(int j=0; j<ArraySize(ch); j++) ch[j]=0x000;
hs=SendMessageA(ht, LVM_GETITEMTEXTA, i, LVITEM_addr);
stu="";
for(int r=0; r<hs; r++) stu+=CharToString(ch[r]);
printf(">>> "+(string)hs+" : "+stu);
Print("ItemsCount=",ItemsCount);
Sleep(100);
}
}
//+------------------------------------------------------------------+
Или пишите ТЗ и предлагайте оплату.
verta81