CODE:
#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define SB_SETPARTS 1028
#define SB_SETTEXTA 1025
#define SB_SETBKCOLOR 8193
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "SetWindowText", "SetWindowTextA", "User32.dll" );
external(INT, "GetWindowText", "GetWindowTextA", "User32.dll" );
external(INT, "GetWindowLong", "GetWindowLongA", "User32.dll" );
external(INT, "IsWindowVisible", "IsWindowVisible", "User32.dll");
int button1,button2, flag=0;
char buf[255];
int status_bar;
int rect[3]={115, 230, 300} // ширина столбцов
string text[3]={"Текст1", "Текст2", ""} // текст столбцов
char text2[99];
int Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds;
createdialog(0);
createdialog(1);
showdialog(0, "Диалог", 10, 10, 300, 300, 0, 1); // 0 - скрывать окно при нажатии на крестик
sendmessage(WM_SIZE, 0, 0, formatiw(status_bar));
while(window("Диалог")==0)sleep(100);
win w=window("Диалог");
enabletimer(0);
metka_start:;
while(flag==0)sleep(10); // пока переменная flag равна 0
loop()
{
// тут скрипт
textout(0, 550, 300, "Скрипт работает", 0); // можно убрать
sleep(1);
}
function getmessage(0, WM_CREATE)
{
status_bar=CreateWindow(0, "msctls_statusbar32", "", WS_VISIBLE | WS_CHILD, 0, 0, 0, 0, gethwnd(0), 0, 0, 0);
sendmessage(SB_SETPARTS, sizearray(rect), address(#rect[0]), formatiw(status_bar)); // указываем сколько столбцов и их ширина
for(int i=0; i<sizearray(text); i++)
{
strcpy(#text2[0], text[i]);
sendmessage(SB_SETTEXTA, i, address(#text2[0]), formatiw(status_bar)); //устанавливаем текст
}
{
button1=CreateWindow(0, "BUTTON", "Старт", WS_CHILD | WS_VISIBLE, 20, 10, 100, 30, gethwnd(0), 0, 0, 0); // создать кнопку
}
{
button2=CreateWindow(0, "BUTTON", "Настройки", WS_CHILD | WS_VISIBLE, 20, 50, 100, 30, gethwnd(0), 0, 0, 0); // создать кнопку
}
sendmessage(SB_SETBKCOLOR, 0, 16769193, formatiw(status_bar)); // цвет фона
}
function getmessage(0, WM_COMMAND)
{
if (message.lparam==button2)
{
showdialog(1, "ДИАЛОГ2",300, 10, 400, 400, 0, 1);
}
if (message.lparam==button1) // если нажата кнопка
{
if(GetWindowText(button1, address(#buf[0]), sizearray(buf))) // получаем текст кнопки
{
if(format(#buf[0])=="Старт") // если 'Старт'
{
flag=1; // разрешаем скрипту продолжить работу
SetWindowText(button1, "Стоп"); // переименовать кнопку
}
else // иначе
{
flag=0; // запрещаем скрипту продолжить работу
resettextout(1); // убрать textout, можно убрать
SetWindowText(button1, "Старт"); // переименовать кнопку
goto global metka_start; // переход к метке
}
}
}
}
CREATE_TIMER(0, 150)
{
getlocaltime(Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds); // получить текущую дату и время
strcpy(#text2[0], format(Hour)+":"+format(Minute)+":"+format(Second));
sendmessage(SB_SETTEXTA, 2, address(#text2[0]), formatiw(status_bar)); // установить текст
if(IsWindowVisible(formatwi(w))==0)close(); // если окно скрыто
}
#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define SB_SETPARTS 1028
#define SB_SETTEXTA 1025
#define SB_SETBKCOLOR 8193
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "SetWindowText", "SetWindowTextA", "User32.dll" );
external(INT, "GetWindowText", "GetWindowTextA", "User32.dll" );
external(INT, "GetWindowLong", "GetWindowLongA", "User32.dll" );
external(INT, "IsWindowVisible", "IsWindowVisible", "User32.dll");
int button1,button2, flag=0;
char buf[255];
int status_bar;
int rect[3]={115, 230, 300} // ширина столбцов
string text[3]={"Текст1", "Текст2", ""} // текст столбцов
char text2[99];
int Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds;
createdialog(0);
createdialog(1);
showdialog(0, "Диалог", 10, 10, 300, 300, 0, 1); // 0 - скрывать окно при нажатии на крестик
sendmessage(WM_SIZE, 0, 0, formatiw(status_bar));
while(window("Диалог")==0)sleep(100);
win w=window("Диалог");
enabletimer(0);
metka_start:;
while(flag==0)sleep(10); // пока переменная flag равна 0
loop()
{
// тут скрипт
textout(0, 550, 300, "Скрипт работает", 0); // можно убрать
sleep(1);
}
function getmessage(0, WM_CREATE)
{
status_bar=CreateWindow(0, "msctls_statusbar32", "", WS_VISIBLE | WS_CHILD, 0, 0, 0, 0, gethwnd(0), 0, 0, 0);
sendmessage(SB_SETPARTS, sizearray(rect), address(#rect[0]), formatiw(status_bar)); // указываем сколько столбцов и их ширина
for(int i=0; i<sizearray(text); i++)
{
strcpy(#text2[0], text[i]);
sendmessage(SB_SETTEXTA, i, address(#text2[0]), formatiw(status_bar)); //устанавливаем текст
}
{
button1=CreateWindow(0, "BUTTON", "Старт", WS_CHILD | WS_VISIBLE, 20, 10, 100, 30, gethwnd(0), 0, 0, 0); // создать кнопку
}
{
button2=CreateWindow(0, "BUTTON", "Настройки", WS_CHILD | WS_VISIBLE, 20, 50, 100, 30, gethwnd(0), 0, 0, 0); // создать кнопку
}
sendmessage(SB_SETBKCOLOR, 0, 16769193, formatiw(status_bar)); // цвет фона
}
function getmessage(0, WM_COMMAND)
{
if (message.lparam==button2)
{
showdialog(1, "ДИАЛОГ2",300, 10, 400, 400, 0, 1);
}
if (message.lparam==button1) // если нажата кнопка
{
if(GetWindowText(button1, address(#buf[0]), sizearray(buf))) // получаем текст кнопки
{
if(format(#buf[0])=="Старт") // если 'Старт'
{
flag=1; // разрешаем скрипту продолжить работу
SetWindowText(button1, "Стоп"); // переименовать кнопку
}
else // иначе
{
flag=0; // запрещаем скрипту продолжить работу
resettextout(1); // убрать textout, можно убрать
SetWindowText(button1, "Старт"); // переименовать кнопку
goto global metka_start; // переход к метке
}
}
}
}
CREATE_TIMER(0, 150)
{
getlocaltime(Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds); // получить текущую дату и время
strcpy(#text2[0], format(Hour)+":"+format(Minute)+":"+format(Second));
sendmessage(SB_SETTEXTA, 2, address(#text2[0]), formatiw(status_bar)); // установить текст
if(IsWindowVisible(formatwi(w))==0)close(); // если окно скрыто
}