Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 4.13 Подключение своих DLL. Использование WinAPI функции в скрипте с стандартных библиотек

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

51. Nikanr - 22 Мая, 2021 - 18:37:30 - перейти к сообщению
Как правильно посчитать адрес ячейки в трехмерном массиве, зная адрес нулевой ячейки не прибегая к повторному вызову address?

CODE:

int Image[5][50][50];

int y = address (#Image[0][0][0]);

//нужно получить адрес ячейки #Image[3][0][0] например
52. Zireael - 22 Мая, 2021 - 18:50:03 - перейти к сообщению
 Цитата:
Как правильно посчитать адрес ячейки в трехмерном массиве

CODE:
int Image[5][50][50];
int y = address (#Image[0][0][0]);

int addr = y + 3 * 50 * 50 * 4; // address (#Image[3][0][0])
messagebox(format(addr)+"^r^n"+format(address (#Image[3][0][0])));
53. Dantes3000 - 19 Июля, 2021 - 14:53:24 - перейти к сообщению
а как переместить папку с диска С на Д?
54. Zireael - 19 Июля, 2021 - 18:29:17 - перейти к сообщению
 Цитата:
а как переместить папку с диска С на Д?

winapi вроде не копирует папки между дисками. Скорее всего по одному файлу перемещение происходит. Возможно есть решение используя Cmd, Python, Powershell.
55. sonik_74 - 26 Декабря, 2021 - 09:17:26 - перейти к сообщению
Здравствуйте. Искал на форуме, не нашёл. Есть задача бежать вперёд в поисках изображения. Клики для бега совершать раз в секунду, а искать постоянно.
напрашивается использование треда, а при нахождении тред останавливать

external(INT, "CreateThread", "CreateThreadA", "kernel32.dll");
external(INT, "ExitThread", "ExitThreadA", "kernel32.dll");

function myFunc(){
while(1){
mouse(LEFT, 890, 475);
pause(1000);
}
}

j = address("myFunc");
k = CreateThread(0, 0, j, 0, 0, 0);

// ищем изображение

ExitThread(k);



такой вариант не работает - kibor доходит до старта треда, передаёт основной поток в функцию myFunc, ждёт её завершения и крашится.
Подскажите, пожалуйста, как реализовать треды в киборе?
56. Zireael - 26 Декабря, 2021 - 09:34:04 - перейти к сообщению
 Цитата:
как реализовать треды в киборе?

Никак.
Используйте таймер: Версия 3.33 Добавление функции таймера (код выполняемый по времени)
57. sonik_74 - 26 Декабря, 2021 - 11:56:43 - перейти к сообщению
 Zireael пишет:
Используйте таймер


Спасибо. В списке функций как-то мимо внимания он прошёл. По описанию не очевидна его функция. По сути, тот же тред.
58. sonik_74 - 28 Декабря, 2021 - 15:03:44 - перейти к сообщению
 sonik_74 пишет:
По сути, тот же тред.


Попробовал таймер... убил несколько часов, результата не достиг.
Вопрос остаётся тот же: как вести параллельные вычисления - клик и поиск изображения?
Поиск занимает время основного потока, иногда значительное. Нужен клик по милисекундам, но таймер ждёт освобождения основного потока.
59. Zireael - 28 Декабря, 2021 - 15:12:22 - перейти к сообщению
 Цитата:
как вести параллельные вычисления - клик и поиск изображения?

Никак, потоков нет. Можно запустить несколько копий кибор.
60. neba2101 - 22 Октября, 2022 - 15:09:34 - перейти к сообщению
Как вернуть путь к ярлыку или запустить .exe файл с флагом?
Как запустить через ярлык с флагом знаю. Пытался вернуть путь так, но возвращает путь на файл, на который указывает ярлык, а не на сам ярлык.

CODE:

external(VOID, "GetOpenFileName", "GetOpenFileNameA", "COMDLG32.DLL");
string Путь;
char b[512];
b[0]=formatic(0);

char a[77];
for (int n=0; n<77; n++)a[n]=0;

writeaddress(76, address(#a[0]));
writeaddress(0, address(#a[4]));
writeaddress(0, address(#a[8]));
writeaddress(0, address(#a[12]));
writeaddress(0, address(#a[16]));
writeaddress(1634928, address(#a[20]));
writeaddress(1000, address(#a[24]));
writeaddress(address(#b[0]), address(#a[28]));
writeaddress(512, address(#a[32]));
writeaddress(0, address(#a[36]));
writeaddress(6148, address(#a[40]));

GetOpenFileName(address(#a[0]));
Путь=format(#b[0]);
messagebox(Путь);

Powered by ExBB FM 1.0 Final