Kibor!
Помоги, пожалуйста, устранить ошибку.
Как я понял ругается на "int hwnd=w[x];".
CODE:
external(INT, "my_windows", "FindWindowExA", "user32.dll");
external(VOID, "my_getname", "GetWindowTextA", "user32.dll");
external(INT, "My_GetWindowRect", "GetWindowRect", "user32.dll");
string hh="Блокнот";
char t[25];
strcpy(#t[0],hh);
int ss=size(#t[0]);
int si;
int y;
int x;
string all[500];
char h[512];
int adr=address(#h[0]);
int a=my_windows(0, 0, 0, 0);
win w[500];
int n=0;
s: if (a!=0)
{
h[0]=formatic(0);
my_getname(a, adr, 512);
si=size(#h[0]);
if (pr()==-1) goto nn;
all[n]=format(#h[0]);
w[n]=formatiw(a);
n++;
nn: a=my_windows(0, a, 0, 0);
goto s;
}
for (x=0; x<n; x++)
{
w.name[x]=all[x];
w.width[x]=737;
w.height[x]=696;
w.left[x]=0;
w.top[x]=0;
movewindow(w[x]);
int hwnd=w[x];//Òî ÷òî ïîëó÷èëè ñ ïîìîùüþ FindWindowExA (http://kibor-bot.com/forum/topic.php?forum=5&topic=336&postid=1439191324#1439191324)
char poz_siz[16];//Ýòî äëÿ çàïîëíåíèÿ ñòðóêòóðû RECT
/*
typedef struct _RECT {
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT, *PRECT;
*/
// LONG èìååò 4 áàéòà. Çíà÷èò âñÿ ïîëíàÿ ñòðóêòóðà 16
My_GetWindowRect(hwnd, address(#poz_siz[0]));
//Òóò ðàçáåðåì ñòðóêòóðó ïî 4 áàéòà.
int tp[4];
tp[0]=addressi(address(#poz_siz[0]));
messagebox ("Ëåâûé óãîë Y "+format(tp[0]));
tp[1]=addressi(address(#poz_siz[4]));
messagebox ("Ëåâûé óãîë Y "+format(tp[1]));
tp[2]=addressi(address(#poz_siz[8]))-tp[0];
messagebox ("Ðàçìåð X "+format(tp[2]));
tp[3]=addressi(address(#poz_siz[12]))-tp[1];
messagebox ("Ðàçìåð Y "+format(tp[3]));
}
function pr()
{
for (int j=0; j<si-ss+1; j++)
{
y=j;
for (int b=0; b<ss; b++)
{
if (h[y]!=t[b])goto d;
y++;
}
return 1;
d:;
}
return -1;
}
|