Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Как сделать запрет запуска 2-х программ на одном компьютере?

Страниц (3): « 1 [2] 3 »
 

11. Kibor - 28 Ноября, 2017 - 10:52:25 - перейти к сообщению
Я не знаю что и зачем менялось.. Эти переменные вообще то локальные. Они повторяться в других местах могут.

Просто скопировать как есть и использовать.
12. Zireael - 28 Ноября, 2017 - 17:25:21 - перейти к сообщению
Убрал лишние переменные и условие. Переменные переименованы.
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);
}
}
13. 007wan - 29 Ноября, 2017 - 06:27:24 - перейти к сообщению
спс, потом проверю
14. 007wan - 30 Ноября, 2017 - 08:52:29 - перейти к сообщению
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;
(Добавление)
если сделать
CODE:
messagebox(nfg);
оно у меня равно 5 почему-то
15. Kibor - 30 Ноября, 2017 - 09:09:50 - перейти к сообщению
http://kibor-bot.com/forum/topic...82657#1511882657
этот код работает.
А тот что выложили вы покоцаный. Работать не будет.
Делайте как положено.
Например объявление переменной wc я не вижу вообще.
16. Zireael - 30 Ноября, 2017 - 17:01:59 - перейти к сообщению
 Цитата:
Например объявление переменной wc я не вижу вообще.

Поэтому и не работает.
CODE:
win wc; // добавить в скрипт
Запрет_на_запуск();
17. 007wan - 01 Декабря, 2017 - 05:33:46 - перейти к сообщению
Zireael , Kibor ,
 Kibor пишет:
А и да, забыл написать для вас, что еще в начале добавлена win wc;

Это для кого писал выше?
18. Zireael - 01 Декабря, 2017 - 06:30:15 - перейти к сообщению
Работающий код уже написали выше. Он работает у вас? В чём сложность добавить в свой скрипт?
19. 007wan - 01 Декабря, 2017 - 07:41:40 - перейти к сообщению
 Zireael пишет:
Работающий код уже написали выше. Он работает у вас? В чём сложность добавить в свой скрипт?

Сложности нету, есть проблема: я добавляю туда куда нужно, я же не тупой, уже как год и больше знаю как скрипты писать(за исключением некоторых, типа этого) и куда их вставлять. В отдельности он работает как по маслу, а если вставить в мой скрипт-то выполняет условие....
(Добавление)
Я смотрел похожх нету переменных, да и программа сообщила бы
20. Kibor - 01 Декабря, 2017 - 07:53:43 - перейти к сообщению
Тогда нужен код. Не по кускам. Никто не будет мозаику складывать и дописывать в скрипт (еще не известно куда)
 007wan пишет:
А и да, забыл написать для вас, что еще в начале добавлена win wc;

И тот код который выложен в виде примера должен использоваться без изменений

Powered by ExBB FM 1.0 Final