Zireael |
Отправлено: 29 Ноября, 2017 - 01:25:21
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Убрал лишние переменные и условие. Переменные переименованы.
CODE:// пишем вверху в самом
external(INT, "my_windows", "FindWindowExA", "user32.dll");
external(VOID, "my_getname", "GetWindowTextA", "user32.dll");
external(VOID, "my_exit", "ExitProcess", "kernel32.dll");
win wc;
проверить_запущена_ли_программа();
//тут вся программа
function проверить_запущена_ли_программа()
{
wc=getwindow();
string all[500];
char h[512];
int adr=address(#h[0]);
int av=my_windows(0, 0, wc.class, 0);
win w[500];
int nfg=0;
while (av!=0)
{
h[0]=formatic(0);
my_getname(av, adr, 512);
nfg++;
av=my_windows(0, av, wc.class, 0);
}
if (nfg > 1) // если запущено больше 1 программы
{
messagebox("Kibor уже открыт, этот будет закрыт"); // можно убрать
my_exit(0); // закрыть программу
}
loop() // можно убрать
{
textout(0, 500, 500, "Kibor", 1);
sleep(100);
}
} |
|
|
007wan |
Отправлено: 30 Ноября, 2017 - 16:52:29
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Kibor , не работает как надо: после запуска сразу же выполняется это условие: CODE:if (nfg > 1) // если запущено больше 1 программы
{
messagebox("Kibor уже открыт, этот будет закрыт"); // можно убрать
my_exit(0); // закрыть программу
} Как я узнал? вышло сообщение... . Я не знаю почему...
Вроде всё верно:
CODE://///////////////////////////////////////////////////////////////////////////////////////
createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0] |
EDIT, #pos_size_edit0[0][0], #text_edit0[0] |
STATIC, #pos_size_static0[0][0], #text_static0[0]);
showdialog(0, "Добропожаловать в чат v1.0", 500, 200, 285, 405, 1, okno);
enabletimer(0);
external(INT, "my_windows", "FindWindowExA", "user32.dll");
external(VOID, "my_getname", "GetWindowTextA", "user32.dll");
external(VOID, "my_exit", "ExitProcess", "kernel32.dll");
Запрет_на_запуск();
/////////////////////////////////////////////////////////////////////////////////////////
function Запрет_на_запуск()
{
wc=getwindow();
string all[500];
char h[512];
int adr=address(#h[0]);
int av=my_windows(0, 0, wc.class, 0);
win w[500];
int nfg=0;
while (av!=0)
{
h[0]=formatic(0);
my_getname(av, adr, 512);
nfg++;
av=my_windows(0, av, wc.class, 0);
}
if (nfg > 1) // если запущено больше 1 программы
{
messagebox("Kibor уже открыт, этот будет закрыт"); // можно убрать
my_exit(0); // закрыть программу
}
}
Луп я убрал, потому что не нужен, ну а разницы, впрочем, и нету всё равно выполняет это условие...
(Добавление)
007wan пишет: CODE:createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0] |
EDIT, #pos_size_edit0[0][0], #text_edit0[0] |
STATIC, #pos_size_static0[0][0], #text_static0[0]);
showdialog(0, "Добропожаловать в чат v1.0", 500, 200, 285, 405, 1, okno);
enabletimer(0); На этот код не обращайте внимание)
(Добавление)
А и да, забыл написать для вас, что еще в начале добавлена win wc;
(Добавление)
если сделать оно у меня равно 5 почему-то |
|
|
Zireael |
Отправлено: 01 Декабря, 2017 - 01:01:59
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Например объявление переменной wc я не вижу вообще.
Поэтому и не работает.
CODE:win wc; // добавить в скрипт
Запрет_на_запуск(); |
|
|
|