Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (22): В начало « 12 13 14 15 [16] 17 18 19 20 » В конец    

> Без описания
007wan
Отправлено: 14 Апреля, 2019 - 09:38:24
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017  
Репутация: -2




Zireael , благодарю
(Добавление)
Проблема, когда запускаешь вторую программу/скрипт в кибор, то закрывает вторую, но оставляется первую, однако, не активирует мигалку в первой программе, что бы показать, что она уже имеется. Мигалка мигает 5 раз и на 6 раз остается в положении, когда она не мигает, но просто окрашивается в желтый цвет, пока окно не будет активно.
Проблема тут:
 Цитата:
...однако, не активирует мигалку в первой программе, что бы...

(Добавление)
CODE:
function Mutex(string s)
{
if (OpenMutex(MUTEX_ALL_ACCESS, 0, s))
{
close();

Constructor = window ("Кибор");

int FLASHWINFO1[5]={20, formatwi(w), FLASHW_TRAY | FLASHW_TIMER, 5, 0};
int FLASHWINFO2[5]={20, formatwi(w), FLASHW_STOP, 0, 0};

FlashWindow(address(#FLASHWINFO1[0]));
}
return CreateMutex(0, 1, s);
}

(Добавление)
Я думаю, что когда запуешь программу первую, то он проверяет нет ли копий этой программы, иначе закрывает(тоесть он проверяется себя), но он никак не может получить когда обнаружена эта копия оригинала, что бы дать звонок, что нужно мигать
(Добавление)
Тоесть при запуске копий - оригинал должен получить сигнал, что нужно мигать
 
 Top
Zireael
Отправлено: 14 Апреля, 2019 - 10:10:11
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
Constructor = window ("Кибор" );
int FLASHWINFO1[5]={20, formatwi(w), FLASHW_TRAY | FLASHW_TIMER, 5, 0};
 
 Top
007wan
Отправлено: 14 Апреля, 2019 - 10:17:39
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017  
Репутация: -2




Всёравно не мигает, кроме того у меня запустилось 2 программы, наверное это редкий случай)
По идеи должно было так:
при запуске одной программы - ничего. При запуске второй - закрываем вторую, треть, четвертую хоть..., но после каждой открытой "копии" первая программа "оригинал" начинает мигать, но это не выходит.
CODE:
function Mutex(string s)
{
if (OpenMutex(MUTEX_ALL_ACCESS, 0, s))
{
close();

Constructor = window ("Кибор");

int FLASHWINFO1[5] = {20, formatwi(Constructor), FLASHW_TRAY | FLASHW_TIMER, 5, 0};
FlashWindow(address(#FLASHWINFO1[0]));
}
return CreateMutex(0, 1, s);
}
 
 Top
Zireael
Отправлено: 15 Апреля, 2019 - 00:11:54
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
при запуске одной программы - ничего. При запуске второй - закрываем вторую, треть, четвертую хоть..., но после каждой открытой "копии" первая программа "оригинал" начинает мигать

code (Отобразить)

Собрать в exe. При запуске 2й или больше копий этого exe они будут закрываться. Окно, запущенное первым, будет мигать на панели задач.
 
 Top
007wan
Отправлено: 15 Апреля, 2019 - 13:42:58
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017  
Репутация: -2




Работает спс
 
 Top
007wan
Отправлено: 15 Апреля, 2019 - 15:55:26
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017  
Репутация: -2




Как с помощью external перехватить события, когда жмешь контрол+шифт+z.
Для чего: при нажатии этих сочетаний, останавливается скрипт, то не срабатывает функция:
CODE:

ReleaseMutex(my_mutex);
CloseHandle(my_mutex);

А если она не сработает, то при повторном запуске первой программы(оригинала, не копии), то программа выполняет эту функцию:
CODE:
function Mutex(string s)
{
if(OpenMutex(MUTEX_ALL_ACCESS, 0, s))
{
find_window(name_exe); // поиск всех окон кибора и запись в его буфер что требуется мигнуь окном
close(); // если мьютекс существует, закрыть программу
}
return CreateMutex(0, 1, s); // иначе создать мьютекс
}

ИЛИ предлагаю, что бы при нажатии этих сочетаний ничего не происходило ИЛИ предлагаю, что бы Кибор сделал у себя в программе, что бы при остановке скрипта автоматически реализовал мьютекс и закрывал хендл
 
 Top
Zireael
Отправлено: 16 Апреля, 2019 - 01:32:18
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
Как с помощью external перехватить события, когда жмешь контрол+шифт+z.

Сменить букву в комбинации.
 Цитата:
В options можно изменить горячую клавишу остановки скрипта.
То есть саму букву.
options ("stop","C" );
Будет останавливать скрипт по КОНТР ШИФТ C

В таймере отлавливать нажатие Ctrl+Shift+Z.
 
 Top
007wan
Отправлено: 16 Апреля, 2019 - 08:26:40
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017  
Репутация: -2




Да нет. Мне нужно вообще при нажатии на эти сочетания ничего не работало, а именно остановка скрипта без изменения сочетаний. Хочу, что бы только закрытие программы происходило только через "крестик"
(Добавление)
Закрытие программы, а не остановка скрипта.
(Добавление)
Почему-то после добавления
CODE:
function getmessage(1, WM_CLOSE)
{
MainWindow = window ("диалог");

Status_Combobox1 = sendmessage(CB_GETCURSEL, 0, 0, formatiw(Object_Combobox1));
Status_Checkbox1 = SendMessage(Object_Checkbox1, BM_GETSTATE, 0, 0);
Status_Checkbox2 = SendMessage(Object_Checkbox2, BM_GETSTATE, 0, 0);
Status_Checkbox3 = SendMessage(Object_Checkbox3, BM_GETSTATE, 0, 0);
Status_Checkbox4 = SendMessage(Object_Checkbox4, BM_GETSTATE, 0, 0);
Status_Checkbox5 = SendMessage(Object_Checkbox5, BM_GETSTATE, 0, 0);
SendMessage(Object_Edit1, WM_GETTEXT, sizearray(Text_Edit1), address(#Text_Edit1[0]));

WritePrivateProfileString ("Default", "Object_Combobox1", format(Status_Combobox1), PathSaveSettings);
WritePrivateProfileString ("Default", "Object_Checkbox1", format(Status_Checkbox1), PathSaveSettings);
WritePrivateProfileString ("Default", "Object_Checkbox2", format(Status_Checkbox2), PathSaveSettings);
WritePrivateProfileString ("Default", "Object_Checkbox3", format(Status_Checkbox3), PathSaveSettings);
WritePrivateProfileString ("Default", "Object_Checkbox4", format(Status_Checkbox4), PathSaveSettings);
WritePrivateProfileString ("Default", "Object_Checkbox5", format(Status_Checkbox5), PathSaveSettings);
WritePrivateProfileString ("Default", "Object_Edit1", format(#Text_Edit1[0]), PathSaveSettings);

EnableWindow(formatwi(MainWindow), 1);
}

это при закрытии диалога 2, а когда открываю меню, то оно не открывается.
(Добавление)
А забыл в конце добавить. теперь работает.
 Цитата:
CODE:
hidedialog(1);

(Добавление)
А можно ли как-то сделать у hidedialog() эффект уничтожения окна как у destroydialog()?
(Добавление)
Как нажать кнопку, как это делает пользователь, но одной функцией, без вмешательства пользователя, т.е я могу нажать кнопку мышь, а я хочу что бы кнопку можно было нажать не мышью, а функцией, котоаря потом вызовет WM_COMMAND

(Отредактировано автором: 16 Апреля, 2019 - 08:34:34)

 
 Top
Zireael
Отправлено: 16 Апреля, 2019 - 11:15:57
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
А можно ли как-то сделать у hidedialog() эффект уничтожения окна как у destroydialog()?

Проверить что окно скрыто и вызвать destroydialog().
 Цитата:
что бы кнопку можно было нажать не мышью, а функцией, котоаря потом вызовет WM_COMMAND

CODE:
sendmessage(BM_CLICK, 0, 0, <указатель на кнопку>);
 
 Top
007wan
Отправлено: 16 Апреля, 2019 - 13:15:30
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017  
Репутация: -2




 Zireael пишет:
CODE:

sendmessage(BM_CLICK, 0, 0, Object_Button1);//Не работает
SendMessage(Object_Button1, BM_CLICK, 0, 0);//Работает
 
 Top
Страниц (22): В начало « 12 13 14 15 [16] 17 18 19 20 » В конец
Сейчас эту тему просматривают: 31 (гостей: 31, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by