007wan |
Отправлено: 25 Мая, 2019 - 13:20:16
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Существует код:
CODE:sendmousetransfer(LEFT, 200, 120, 845, 450, 0.02, Game);
sendmousetransfer(LEFT, 200, 120, 845, 450, 0.02, Game);
sendmousetransfer(LEFT, 200, 120, 845, 450, 0.02, Game);
sendmousetransfer(LEFT, 200, 120, 845, 450, 0.02, Game);
sendmousetransfer(LEFT, 200, 120, 845, 450, 0.02, Game);
Как мне его разделить каждый sendmousetransfer на:
-удержать в координатах
-перенести в какиех-то координатах
-отпустить в координатах
Проблема не в использовании функции, а в том, что я не знаю что куда и какие цифры для распределения |
|
|
007wan |
Отправлено: 29 Мая, 2019 - 11:41:04
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Kibor , К вам вопрос. Как у тебя устроен алгоритм функции "Поверх окна" в отладке. Просто у меня некие проблемы и я надеюсь, что это мне поможет. Интересуют алгоритмы:
-Когда стоит галка "поверх"
-Когда убрана галка
-Когда галка поставлена и отладка запускается.
Когда галка убрана и отладка запускается.
*имеется ввиду "отладка запускается", т.е запускается сам диалог.
Пожалуйста. Просто из-за того, что при закрытии диалога у меня в файл грузит значение для этой функции в файл, то после этого вызывается соотвествующая функция для окна, но она не успевает получить нужный результат, т.е:
Я когда закрываю диалог2, то вызывается функция Window_Topmost, но перед этим сохраняется значение галочек, но не успевает загрузить в файл значение, как вызывается эта функция.
function Window_Topmost (Отобразить)CODE:function Window_Topmost()
{
while(Load_Checkbox[4] == -842150451)
{
sleep(10);
}
else
{
MainWindow = formatiw(gethwnd(0));
SecondaryWindow = formatiw(gethwnd(1));
messagebox("Load_Checkbox[4]:"+format(Load_Checkbox[4]));
if (Load_Checkbox[4] == 1)
{
SetWindowPos(formatwi(MainWindow), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
SetWindowPos(formatwi(SecondaryWindow), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
}
//===================================================================================================================================================
if (Load_Checkbox[4] == 0)
{
SetWindowPos(formatwi(MainWindow), HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
SetWindowPos(formatwi(SecondaryWindow), HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
}
}
}
(Добавление)
Для правильного понимая. У меня стоит таймер, который через 500мсек грузит из файла все значения.CREATE_TIMER(1, 500) (Отобразить)CODE:CREATE_TIMER(1, 500)
{
if(fopen(PathSaveSettings, "r") != 0)
{
fclose();
for (int c=0; c<sizearray(Object_Checkbox); c++)
{
GetPrivateProfileString ("Default", "Object_Checkbox"+format(c), 0, address(#Buffer[0]), 255, PathSaveSettings);
Load_Checkbox[c] = formatsn(format(#Buffer[0]));
}
}
} или как можно по другому? |
|
|
Zireael |
Отправлено: 29 Мая, 2019 - 14:28:42
|
Эксперт
Покинул форум
Сообщений всего: 4462
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: когда закрываю диалог2
Если в showwindow 7й параметр 4, то сработает WM_CLOSE.
CODE:function getmessage(0, WM_CLOSE) // если диалог закрыт
{
// тут выполнить нужные действия
// можно записать, загрузить, выполнить функцию или ещё что-то
} |
|
|
007wan |
Отправлено: 29 Мая, 2019 - 14:56:34
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Всё есть. Но почему WM_CLOSE сбрасывает состояние окна(окон) режим поверхности?!
Я зашел в свои настройки, поставил галочку, закрыл, любую галчку, кроме "поверх окно" и закрыл диалог и сбилось это состояние!!!
(Добавление)
А если поставить в WM_CLOSE функцию вызова Widnwo_Topmost, то он ее вызывает, но окно уже не может приобрести состояние поверх
(Добавление)
Извиниюсь за ошибки. Но думаю понятно что к чему
(Добавление)
Суть в том, что WM_CLOSE сбивает состояние "высшего окна" у всех диалогов kibor, причем вызов функции Window_Topmost не помогает.
(Добавление)
А чье это? http://kibor-bot.com/help/pr/pointer_window.php
Оно точно отличается от этого http://filesd.net/kibor/indexwindows.php
(Добавление)
Нашел причину не работающей функции поверх окна.
Причина была в том, что плохая функция
CODE:MainWindow = formatiw(gethwnd(0)); Не работала.
А когда поставил этоCODE:MainWindow = window("K2019Bot"); ТО всё чудестно заработало. Вообщем: может я чего-то не догоняю. Но setwindowparam нихрена, извиняюсь за выражение не работает. Как и то, что я скинул в коде первым.
(Добавление)
Вот что я делаю не так?
CODE:
getdisplay(Display_Color, Display_Width, Display_Height);
createdialog(0);
createdialog(1);
showdialog(0, "диалог1", Display_Width/2-450, Display_Height/2-400, 700, 400, 4, 1);
setwindowparam(MainWindow);
function getmessage(0, WM_CREATE)
{
MainWindow = formatiw(gethwnd(0));
//бла-бла-бла
}
function getmessage(0, WM_COMMAND)//отрывок. Если нажали меню.
{
if(loword(message.wparam) == 1)
{
showdialog(1, "диалог2", MainWindow.left+100, MainWindow.top+100, 525, 500, 4, 1);
setwindowparam(SecondaryWindow);
}
function getmessage(1, WM_CREATE)
{
SecondaryWindow = formatiw(gethwnd(1));
//бла-бла-бла
}
SecondaryWindow = formatiw(gethwnd(1));//использую в качестве указателя на мой диалог именно на мой, а не другой. Даже если имена одинаковые
MainWindow = formatiw(gethwnd(0));//как и это. Но указатели не работают. не получает координаты и имена. итд.
|
|
|
Zireael |
Отправлено: 30 Мая, 2019 - 01:36:05
|
Эксперт
Покинул форум
Сообщений всего: 4462
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Вот что я делаю не так?
В приведённом коде количество скобок {} не совпадает.
Цитата: Как ускорить процесс? Увеличивать или уменьшать искомые изображения?
Уменьшить искомую картинку, по возможности уменьшить зону поиска, искать при 100% точности. |
|
|
|